Remove JSON root



我在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对象的不同属性。多米尼克只是其中之一。

最新更新