4

私は次のjson応答を持っています..ここで私はそれの数行だけを表示しました。"&"配列に置き換えて&格納するにはどうすればよいですか。前もって感謝します。

[
    {
        "cat_id": "1",
        "cat_name": "Dining & Nightlife",
        "0": {
            "subcat_id": "2",
            "subcat_name": "Restaurants"
        },
        "1": {
            "subcat_id": "3",
            "subcat_name": "Bar &  Club"
        }
    }
]
4

3 に答える 3

4

JSONデータが適切にエンコードされていません。JSON形式に加えて、すべての文字列はHTMLでエンコードされているようです。これは二重エンコーディングであり、完全に不要です。

これをソース、つまりサーバーで修正することを強くお勧めします。そうすれば、多くの異なるクライアントが問題なく使用できる適切なJSONデータが得られます。

サーバーで修正できない場合は、JSON応答の各文字列属性をデコードする必要があります。その前に、アンパサンドだけが影響を受けるか(ありそうもない)、または他の特殊文字(<>äôなど)も影響を受けるかどうかを調査することをお勧めします。次に、これを質問に追加すると、私たちがお手伝いできる可能性があります。

更新:解析されたJSONデータをメモリに保持するために使用しているクラスがよくわかりません。(配列について言及します。)ただし、二重にエンコードされたアンパサンドを修正するには、各文字列で次のコードを使用します。

str = [str stringByReplacingOccurrencesOfString: @"&amp;" withString: @"&"];
于 2012-08-14T11:50:05.463 に答える
1

これを試して

     NSString *sting=[[NSString alloc]init];
     sting=[[request responseString] stringByReplacingOccurrencesOfString:@"&amp;" withString:@"&"];
      NSDictionary *resDict =[parser objectWithString:sting error:nil];
于 2012-08-14T12:28:44.003 に答える
0

Uは配列を取る必要があります。forループuを使用すると、&amp to&を置き換えることができ、その文字列は配列に追加されます。そして新しいaraayを作ります...

于 2012-08-14T11:04:37.510 に答える