我在JavaScript变量上有以下字符串:
my_Variable = "{"Domini":[{"cod_domini":"1","nom_domini":"Sant Esteve de Palautordera"},{"cod_domini":"2","nom_domini":"Parc Natural del Montseny"},{"cod_domini":"5","nom_domini":"Sant Pere de Vilamajor"},{"cod_domini":"6","nom_domini":"Santa Maria i Mosqueroles"}]}"
我需要删除字符串Domini
顶部的根,以便生成的字符串如下所示:
my_Variable = [{"cod_domini":"1","nom_domini":"Sant Esteve de Palautordera"},{"cod_domini":"2","nom_domini":"Parc Natural del Montseny"},{"cod_domini":"5","nom_domini":"Sant Pere de Vilamajor"},{"cod_domini":"6","nom_domini":"Santa Maria i Mosqueroles"}]
我尝试使用JSON.parse()
函数将JSON解析为对象并且它可以工作,但是我不知道如何检索数据并处理它以生成没有root的新JSON。
我应该使用某种循环吗?
答案 0 :(得分:6)
很简单:
my_Variable = my_Variable.Domini;
在JSON解析之后。
所以代码就像:
my_Variable = "{"Domini":[{"cod_domini":"1","nom_domini":"Sant Esteve de Palautordera"},{"cod_domini":"2","nom_domini":"Parc Natural del Montseny"},{"cod_domini":"5","nom_domini":"Sant Pere de Vilamajor"},{"cod_domini":"6","nom_domini":"Santa Maria i Mosqueroles"}]}";
my_Variable = JSON.parse( my_Variable );
my_Variable = my_Variable.Domini;
console.log( my_Variable ); // [{"cod_domini":"1","nom_domini": ...
答案 1 :(得分:3)
var obj = JSON.parse(json);
obj = [Object.keys(obj)[0]];
var newJson = JSON.stringify(obj);
或者,避开像Object.keys这样的ES5功能:
var obj = JSON.parse(json);
for (var key in obj) {
if (!Object.prototype.hasOwnProperty.call(obj, key)) continue;
obj = obj[key];
break;
}
var newJson = JSON.stringify(obj);
答案 2 :(得分:2)
考虑到在删除密钥后你想要它回到字符串。
my_Variable = JSON.stringify(JSON.parse(my_Variable).Domini);
JSON.parse(my_Variable)
将字符串解析为JSON对象。
JSON.parse(my_Variable).Domini
返回属性Domini
的值。
JSON.stringify(JSON.parse(my_Variable).Domini)
将其编码回字符串。
答案 3 :(得分:1)
如果您希望传递变量,请执行以下操作(您提到过您已经完成此操作,但我已将其添加为完整性)
var parsedJson = JSON.parse(my_Variable);
解析后,只需执行以下操作:
var JsonWithoutDominiAsRoot = parsedJson.Domini;
你可以“。”通过新json对象的不同属性的方式。多米尼只是其中之一。