将字符串转换为javascript对象
我有这个形式的字符串,想转换成json对象。 试过将字符串转换为javascript对象,javascript,jquery,Javascript,Jquery,我有这个形式的字符串,想转换成json对象。 试过 JSON.parse({INDIA=99,PAKISTAN=30})。 但是犯了错误 VM2602:1未捕获的语法错误:JSON中位置1处的意外标记O 您没有提供有效的JSON 为了使JSON.parse()正常工作,您需要提供有效的JSON 例如: {“印度”:99,“巴基斯坦”:30} 在代码中: "{INDIA=99, PAKISTAN=30}" 希望这有帮助 键周围必须有字符,否则无法读取。 因此: 那应该行。这个 var str
JSON.parse({INDIA=99,PAKISTAN=30})。
但是犯了错误
VM2602:1未捕获的语法错误:JSON中位置1处的意外标记O
您没有提供有效的JSON 为了使
JSON.parse()
正常工作,您需要提供有效的JSON
例如:
{“印度”:99,“巴基斯坦”:30}
在代码中:
"{INDIA=99, PAKISTAN=30}"
希望这有帮助 键周围必须有字符,否则无法读取。 因此: 那应该行。这个
var str = '{"INDIA":99, "PAKISTAN":30}'
JSON.parse(str);
您的输入不是有效的JSON。您可以尝试将其转换为适当的字符串,然后在尝试时调用
JSON.parse
。请参阅下面的片段,如果您还有任何问题,请随时提问
const str=“{印度=99,巴基斯坦=30}”;
const result=JSON.parse(str.replace(/\=/g',:')。replace(/([a-zA-Z]+)/g',“$1”);
控制台日志(结果);
console.log(结果['INDIA'])
尝试替换
和拆分
字符串。并使用数组#forEach
var str=“{印度=99,巴基斯坦=30}”;
var c=str.replace(/[\}\{]/g',).trim().split(',)
var res={};
c、 forEach(a=>res[a.split('=')[0].trim()]=a.split('=')[1].trim())
console.log(res)
您的字符串有两个问题:
:
)分隔,而不是用等于(=
)分隔{India=100000,000}
,则此解决方案将失败。因此,请将此视为您的最后手段。字符串操作永远不会100%覆盖
var str=“{印度=99,巴基斯坦=30}”;
var kv=短串子串(1,短串长度-1);
var列表=千伏分裂(“,”);
var result=list.reduce(函数(p,c){
var parts=c.split('=');
p[零件[0]]=零件[1];
返回p;
}, {})
console.log(result)
JSON.parse(“{”INDIA:99,“PAKISTAN:30}”)这个字符串不是JSON,所以不能被解析为JSON。手动解析它或替换()使它看起来像JSON需要什么(ymmv这样做)。如果您的字符串确实是这样的,您能返回到它来自的任何地方并更改输出吗?如果您能使其成为标准JSON,您的工作将更轻松。以下内容对您有用吗?JSONParser parser=new JSONParser();JSONObject JSON=(JSONObject)parser.parse(“{INDIA=99,PAKISTAN=30}”);@Amit这不是一个有效的json这里是:在中间我相信这应该是一个很好的解决方案。如果他不能更改原始内容,可能会满足他的需要。
var str = '{"INDIA":99, "PAKISTAN":30}'
JSON.parse(str);
JSON.parse('{"INDIA":99, "AKISTAN":30}')