Javascript 迭代格式化JSON数组

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数组有两个问题需要首先解决 星期天你少了一个“ 您有一个数组,而不仅仅是

我正在查询一个MS SQL数据库,它返回一个格式化的JSON数组。下面是返回内容的示例。我几乎使用了我能找到的每个JavaScript示例来迭代数组,但没有任何效果:

[
  [
    {"id":1,"Title":"Friday"},
    {"id":2,"Title":"Saturday"},
    {"id":3,"Title":"Sunday"}
  ]
]
使用nodejs(ES5语法):


您的json数组有两个问题需要首先解决

  • 星期天你少了一个
  • 您有一个数组,而不仅仅是一个数组
  • 当您的数组正确时,SQL的返回应该如下所示:

    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。。。我不明白不是我写的,你的代码可以用。