我有一个像这样的 JSON 数组
{
"2070":{
"address_id":"2070",
"firstname":"Simon",
"lastname":"Hall",
"company":"",
"address_1":"",
"address_2":"",
"postcode":"44000",
"city":"",
"zone_id":"0",
"zone":"",
"zone_code":"",
"country_id":"223",
"country":"United States",
"iso_code_2":"US",
"iso_code_3":"USA",
"address_format":"{firstname} {lastname}
{company}
{address_1}
{address_2}
{city}, {zone} {postcode}
{country}",
"custom_field":false
},
"2071":{
"address_id":"2071",
"firstname":"Simon",
"lastname":"Hall",
"company":"",
"address_1":"TEST",
"address_2":"",
"postcode":"44000",
"city":"New York",
"zone_id":"3625",
"zone":"Colorado",
"zone_code":"CO",
"country_id":"223",
"country":"United States",
"iso_code_2":"US",
"iso_code_3":"USA",
"address_format":"{firstname} {lastname}
{company}
{address_1}
{address_2}
{city}, {zone} {postcode}
{country}",
"custom_field":false
}
}
此 JSON 无效,但我以这种形式获取它,我无法解析它,因为它不是有效的 JSON,而且我无法从字符串中删除特殊字符。 如何从这个无效的 JSON 中提取特定索引的数据? 有什么方法可以遍历这个 JSON?
最佳答案
对于您提供的示例,您可以简单地从字符串中删除所有换行符,从而生成有效的 JSON。
我没测试过,大概是这样的:
var json = "your json";
json = json.replace(/(?:\r\n|\r|\n)/g, '');
修改自 https://stackoverflow.com/a/5664521/2911452
祝你好运。
更新
正如 Emissary 提到的,删除新行会导致数据丢失。因此,您可以将新行替换为“JSON 转义新行”。请参阅:https://stackoverflow.com/a/42073/2911452
关于Javascript-如何遍历无效的 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36341418/