2

パブリケーションの静的リストを公開する非常に基本的な ASP MVC アプリケーションがあります (以下のコードと結果を参照)。

コード:

    public JsonResult Index()
    {
        List<Publication> list = new List<Publication>() {
            new Publication() { Id = 1, Name = "War and Peace" },
            new Publication() { Id = 2, Name = "Harry Potter" },
            new Publication() { Id = 3, Name = "Cat in the Hat" }
        };
        return this.Json(list, JsonRequestBehavior.AllowGet);
    }

結果:

[{"Id":1,"Name":"戦争と平和"},{"Id":2,"Name":"Harry Potter"},{"Id":3,"Name":"ねこ帽子"}]

Android で使用しようとすると、次のエラーが発生します。

04-15 12:00:57.331: W/System.err(209): org.json.JSONException: JSONObject テキストは、[{"Id":1,"Name":" の文字 1 で '{' で始まる必要があります。戦争と平和"},{"Id":2,"Name":"ハリー・ポッター"},{"Id":3,"Name":"帽子の中の猫"}]

開始 [ および終了 ] を削除すると、エラーが表示されなくなります。もう 1 つのオプションは、{publications: ロジックを Android コードの先頭に配置することですが、それは既に存在しているはずです。

MVC アプリケーションのコードを更新して、JSON の「すぐに使用できる」バージョンを生成するにはどうすればよいですか?

どんな助けでも大歓迎です。

4

2 に答える 2

2

まず、受信時に json 文字列を変更しないでください。解析を台無しにする可能性があるためです。

次に、Json 文字列は で始まり で[終わるため、配列形式になっています]。したがって、JSONObjectを使用する代わりに、 JSONArrayを使用する必要があります。

于 2012-04-15T12:11:09.583 に答える
1

GSONの使用をお勧めします。使い方は簡単で、速くて正確です。

于 2012-04-15T14:19:12.500 に答える