在iphone中解析&到&中的json

Posted

技术标签:

【中文标题】在iphone中解析&到&中的json【英文标题】:Parsing & to & in json in iphone 【发布时间】:2012-08-14 10:40:15 【问题描述】:

我有以下 json 响应.. 在这里我只显示了它的几行。 如何将"&" 替换为& 并存储在数组中。 提前致谢。

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

【问题讨论】:

您是否尝试过搜索如何执行此操作? 是的,我试过了。但我只找到了 xmlparser 的方法。不适用于 json 【参考方案1】:

您的 JSON 数据未正确编码。除了 JSON 格式,所有的字符串似乎都是 html 编码的。这是双重编码,完全没有必要。

我强烈建议您在源头(即在服务器上)修复此问题。然后你就有了正确的 JSON 数据,可以被许多不同的客户端毫无问题地使用。

如果您无法在服务器上修复它,那么您必须解码 JSON 响应中的每个字符串属性。在您这样做之前,您最好调查一下是否只有 & 号受到影响(不太可能)或其他特殊字符(例如 ä ô)。然后您可以将此添加到您的问题中,我们可能会为您提供帮助。

更新: 我不太明白您使用哪些类将解析的 JSON 数据保存在内存中。 (您提到了 数组。)但要修复双重编码的 & 符号,请在每个字符串上使用以下代码:

str = [str stringByReplacingOccurrencesOfString: @"&" withString: @"&"];

【讨论】:

感谢您的回答。我的 json 响应中只有 & 号特殊字符。有什么方法可以将其替换或转换为 & 那么你不想从源头上解决问题? 我无法从源头解决这个问题,因为我无法访问它。我没有任何权限访问它 查看我的更新。您可能需要提供有关您正在使用的数据结构的更多详细信息。 我怀疑“stringByReplacingOccurrencesOfString:withString:”在他的字符串中经常出现。【参考方案2】:

试试这个

     NSString *sting=[[NSString alloc]init];
     sting=[[request responseString] stringByReplacingOccurrencesOfString:@"&" withString:@"&"];
      NSDictionary *resDict =[parser objectWithString:sting error:nil];

【讨论】:

【参考方案3】:

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

【讨论】:

以上是关于在iphone中解析&到&中的json的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iPhone 上禁用 url 和底部栏

段落文本中的 Knockout.js 回车

jquery click 事件不会在 iPhone 中的按钮元素上触发

利用fastjson解析json并通过js&ajax实现页面的无跳转刷新

thymeleaf模板。。。包含js。。。使用了if(a && b) 然后 && 不能通过模板引擎的解析。。。

HTTP协议详解&TCP&OSI七层概念模型