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

你必须在采取阵列。并使用 for 循环,您可以将 & 替换为 & 并将该字符串添加到数组中。做新的 araay...

于 2012-08-14T11:04:37.510 回答