我有一个像这样的json输出代码:
{"a":{"p1":"1"},"a":{"p2":"2"},"b":{"b1":"b2"}}
如何使用 javascript 或 jquery 或 php 将其转换为以下内容?
{"a":{"p1":"1","p2":"2"},"b":{"b1":"b2"}}
编辑: 我通过这段代码生成json代码:
parts2.push('"'+$(this).attr('alt')+'":{"'+$(this).attr('title') + '"' + ":" + '"'+$(this).attr('value') + '"}' );
但是 $(this).attr('alt') 可能会在循环中重复,我想防止重复的键,而是将值附加到该键
最佳答案
对象的每个属性都应该有一个唯一的键名称。如果您尝试使用重复的键名称解析 JSON,则仅使用最后出现的值,因此无法使用 native JSON.parse
解析此值,并且仍然希望保留数据。
根据您的编辑,您可以防止重复发生:
var obj = {};
if typeof obj[$(this).attr('alt')] == "undefined"
obj[$(this).attr('alt')] = {};
obj[$(this).attr('alt')][$(this).attr('title')] = $(this).attr('value');
parts2.push(JSON.stringify(obj));
关于php - 合并 json 字符串的唯一键的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13563501/