Javascript 迭代格式化JSON数组
我正在查询一个MS SQL数据库,它返回一个格式化的JSON数组。下面是返回内容的示例。我几乎使用了我能找到的每个JavaScript示例来迭代数组,但没有任何效果:Javascript 迭代格式化JSON数组,javascript,sql,Javascript,Sql,我正在查询一个MS SQL数据库,它返回一个格式化的JSON数组。下面是返回内容的示例。我几乎使用了我能找到的每个JavaScript示例来迭代数组,但没有任何效果: [ [ {"id":1,"Title":"Friday"}, {"id":2,"Title":"Saturday"}, {"id":3,"Title":"Sunday"} ] ] 使用nodejs(ES5语法): 您的json数组有两个问题需要首先解决 星期天你少了一个“ 您有一个数组,而不仅仅是
[
[
{"id":1,"Title":"Friday"},
{"id":2,"Title":"Saturday"},
{"id":3,"Title":"Sunday"}
]
]
使用nodejs(ES5语法):
您的json数组有两个问题需要首先解决
“
var jsonArray = JSON.parse('[{"id":1,"Title":"Friday"},{"id":2,"Title":"Saturday"},{"id":3,"Title":"Sunday"}]');
var jsonOutterArray = JSON.parse('[[{"id":1,"Title":"Friday"},{"id":2,"Title":"Saturday"},{"id":3,"Title":"Sunday"}]]');
var jsonArray = jsonOuterArray[0];
“[{id:1,Title:“星期五”},{id:2,Title:“星期六”},{id:3,Title:“星期日”}”
这还不是一个json对象,它只是一个看起来像一个的字符串,要将其用作json对象/数组,您需要像这样解析它:
var jsonArray = JSON.parse('[{"id":1,"Title":"Friday"},{"id":2,"Title":"Saturday"},{"id":3,"Title":"Sunday"}]');
var jsonOutterArray = JSON.parse('[[{"id":1,"Title":"Friday"},{"id":2,"Title":"Saturday"},{"id":3,"Title":"Sunday"}]]');
var jsonArray = jsonOuterArray[0];
如果无法绕过数组中的[[]]
数组,可以如下处理:
var jsonArray = JSON.parse('[{"id":1,"Title":"Friday"},{"id":2,"Title":"Saturday"},{"id":3,"Title":"Sunday"}]');
var jsonOutterArray = JSON.parse('[[{"id":1,"Title":"Friday"},{"id":2,"Title":"Saturday"},{"id":3,"Title":"Sunday"}]]');
var jsonArray = jsonOuterArray[0];
有很多方法可以在javascript中对其进行迭代,这完全取决于您使用什么库以及希望从中获得什么,比如jQuery示例如何不仅给出对象,而且给出该对象在数组中的位置,但forEach不会给出
对于每个示例,jsonArray
将是从SQL中解析出来的json,key
将是数组中的位置,value
将是数组中的对象
JavaScript:(数组原型forEach)
JavaScript:(for循环)
请注意,星期日之前缺少报价:
[[{"id":1,"Title":"Friday"},{"id":2,"Title":"Saturday"}, {"id":3,"Title":Sunday"}]]
因此,您将无法计算此JSON
[[{"id":1,"Title":"Friday"},{"id":2,"Title":"Saturday"}, {"id":3,"Title":"Sunday"}]]
您将能够以常规方式对其进行迭代,例如,使用
for
循环。请展示您尝试过的每个示例,好吗?这是一个无效的JSONinput@GillesQuenotOP说它是输出,所以可以安全地假设丢失的报价是一个输入错误?但这很好catch@Hans-John的问题可能是json d无效由于缺少引号,它可能是数组数组,并且可能忘记对其进行解析,因为sql返回将是字符串。更正问题中的json会改变问题。以下是从sql数据库返回的格式化json数组的打印输出:[[{“id”:1,“Title”:“Friday”},{“id”:2,“Title”“:“Saturday”},{“id”:3,“Title”:“Sunday”}]]我需要访问数据,但返回的数据有额外的括号。我需要帮助迭代来提取信息ForEach不需要节点,它是数组原型的一部分。是的,当然,但我只是澄清我使用的是nodejs。。。我不明白不是我写的,你的代码可以用。