我在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解析为一个对象,它很有效,但后来我不知道如何检索数据并处理它以生成一个没有根的新JSON。
我应该使用某种循环吗?
很简单:
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": ...
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);
考虑到您希望在移除键后将其恢复为字符串。
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)
将其重新编码为字符串。
如果您想传递变量,请执行以下操作(您提到您已经完成了这项操作,但我添加它是为了完整性(
var parsedJson = JSON.parse(my_Variable);
解析后,只需执行以下操作:
var JsonWithoutDominiAsRoot = parsedJson.Domini;
您可以"."通过新json对象的不同属性。多米尼克只是其中之一。