gpt4 book ai didi

javascript - 使用奇怪的 json 字段映射 json 对象,使用 lodash 按数字索引

转载 作者:行者123 更新时间:2023-11-29 10:40:01 26 4
gpt4 key购买 nike

我正在尝试解析来自服务器的 json 响应。我无法对服务器端做任何事情,因为它不能很快更改。

这是他们的 json 响应:

{
prop[1][foo]: "foo number 1",
prop[1][bar]: "bar number 1",
prop[1][bazz]: "bazz number 1",
prop[2][foo]: "foo number 2",
prop[2][bar]: "bar number 2",
prop[2][bazz]: "bazz number 2"
}

现在我希望它是这样的:

{
props: [
{foo: "foo number 1", bar: "bar number 1", bazz: "bazz number 1"},
{foo: "foo number 2", bar: "bar number 2", bazz: "bazz number 2"}
]
}

我该怎么做,我不知道如何迭代和设置。

我的尝试:

var temp = [];

var regExp = /\[([^)])\]/;
var matches;
_.each(element, function(value, key) {
if (key.indexOf('foo') >= 0) {
matches = regExp.exec(key);
temp[matches[1]] = value;
}

});

最佳答案

我们可以进行字符串操作,因为在 javascript 中使用“eval()”是个坏主意

var injson = '{prop[1][foo]: "foo number 1",    prop[1][bar]: "bar number 1",    prop[1][bazz]: "bazz number 1",    prop[2][foo]: "foo number 2",    prop[2][bar]: "bar number 2",    prop[2][bazz]: "bazz number 2"}'

injson = injson.replace("{","");
injson = injson.replace("}","");
injson = injson.split("\",");

var outarr = [];

for(var index=0;index<injson.length;index++){
var _key = $.trim(injson[index].split(":")[0]);
var _value = $.trim(injson[index].split(":")[1]);
_value = _value.substring(1, _value.length-1);
var _index = parseInt(_key.substring(_key.indexOf("[")+1).substring(0,1));
var _prop = _key.substring(_key.indexOf("][")+2, _key.length-1);
if(!outarr[_index])
outarr[_index] = {};
outarr[_index][_prop] = _value;
};
console.log(outarr);

像这样

如果你想使用 eval,你可以尝试减少 for 循环中的代码

关于javascript - 使用奇怪的 json 字段映射 json 对象,使用 lodash 按数字索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30929603/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com