将字符串数组转换为 JSON 属性 中的对象数组
Convert array of strings to array of objects in JSON property
我从端点
返回了以下JSON
{
"response": {
"lines": [
"[{'line':'3007621h7s2','type':'national'},{'line':'3007663f7s9','type':'international'}]",
"[{'line':'3007262p7f6','type':'national'},{'line':'3007262a0s1','type':'international'}]"
]
}
}
属性 lines
是一个数组,应该包含多个数组,但是,如您所见, lines
是一个字符串数组。如何使 属性 行中的每个元素成为一个对象数组?
谢谢
您的 json 有几个错误(我不知道那是真正的 json 还是硬编码的,所以您可以检查一下)。第一个是
'line:'3007621h7s2
应该是 'line':3007621h7s2
- 像
3007621h7s2
这样的值应该是 '3007621h7s2'
当你修复你的json,然后你可以使用JSON.parse()
转换字符串
var data = {
"response": {
"lines": [
"[{'line':'3007621h7s2', 'type': 'national'},{'line':'3007663f7s9','type':'international'}]",
"[{'line':'3007262p7f6', 'type': 'national'},{'line':'3007262a0s1','type':'international'}]"
]
}
}
data.response.lines = data.response.lines.map(a=>JSON.parse(a.replace(/'/g,'"')))
console.log(
data
)
将字符串转换为数组的最简单方法是 eval()
它们。
var obj = {
"response": {
"lines": [
"[{'line':'3007621h7s2','type':'national'},{'line':'3007663f7s9','type':'international'}]",
"[{'line':'3007262p7f6','type':'national'},{'line':'3007262a0s1','type':'international'}]"
]
}
}
obj.response.lines = obj.response.lines.map(line => eval(line));
console.log(obj);
我从端点
返回了以下JSON{
"response": {
"lines": [
"[{'line':'3007621h7s2','type':'national'},{'line':'3007663f7s9','type':'international'}]",
"[{'line':'3007262p7f6','type':'national'},{'line':'3007262a0s1','type':'international'}]"
]
}
}
属性 lines
是一个数组,应该包含多个数组,但是,如您所见, lines
是一个字符串数组。如何使 属性 行中的每个元素成为一个对象数组?
谢谢
您的 json 有几个错误(我不知道那是真正的 json 还是硬编码的,所以您可以检查一下)。第一个是
'line:'3007621h7s2
应该是'line':3007621h7s2
- 像
3007621h7s2
这样的值应该是'3007621h7s2'
当你修复你的json,然后你可以使用JSON.parse()
转换字符串
var data = {
"response": {
"lines": [
"[{'line':'3007621h7s2', 'type': 'national'},{'line':'3007663f7s9','type':'international'}]",
"[{'line':'3007262p7f6', 'type': 'national'},{'line':'3007262a0s1','type':'international'}]"
]
}
}
data.response.lines = data.response.lines.map(a=>JSON.parse(a.replace(/'/g,'"')))
console.log(
data
)
将字符串转换为数组的最简单方法是 eval()
它们。
var obj = {
"response": {
"lines": [
"[{'line':'3007621h7s2','type':'national'},{'line':'3007663f7s9','type':'international'}]",
"[{'line':'3007262p7f6','type':'national'},{'line':'3007262a0s1','type':'international'}]"
]
}
}
obj.response.lines = obj.response.lines.map(line => eval(line));
console.log(obj);