【问题标题】:JavaScript Express returning empty JSONJavaScript Express 返回空 JSON
【发布时间】:2014-05-05 15:43:44
【问题描述】:

各位, 我有一个函数可以创建一个我想返回给浏览器的对象。出于某种原因,浏览器得到一个没有内容的空对象:

{
    pName: [ ]
}

这是console.log(require('util').inspect(projectObject, false, 10));的对象

{ pName:
    [ foo:
        [ nodejs: 
            [ staging: 
                [ 
                    { name: 'i-4a14c51a', id: 'i-4a14c51a' },
                    { name: 'i-19fc094a', id: 'i-19fc094a' },
                ],
              production: 
                [ 
                    { name: 'i-5f14c50f', id: 'i-5f14c50f' },
                    { name: 'i-b1fb0ee2', id: 'i-b1fb0ee2' },
                ]
            ]
       ],
...

我想它不返回对象的原因是因为它认为第一个实体是空的。

我在哪里犯了错误?结果需要看起来喜欢:

"hosts": [
{
  "projectA": [
     {
       "foo": [
          {
            "nodejs": [
          {
        "production": [
                       {
                         "name": "Her blog",
                         "cmd": "ssh username@blog2.example.com"
                       }
                    ]
                  }
                ]
              }
            ]
           }
        ]
     },
  ]

【问题讨论】:

  • JSON 的数组只是列表。对于键/值对,使用Objects -- { foo: ... }
  • @JonathanLonowski 结果需要是对象数组...
  • stagingproduction 的值仍然可以是Arrays,因为它们都是Objects 的列表,但是那些Arrays 需要包含在其中Objects 在输出中包含 foonodejs 等。
  • 我已经更新了我的问题
  • @Cmag util.inspect 的输出是完全格式错误的 JSON。这只是复制和粘贴错误吗?如果不是,我怀疑这至少是您的一些问题。

标签: javascript json node.js express


【解决方案1】:

我相信你的问题在这里:

{ pName:
    [ foo: // <-- invalid JSON
        [ nodejs: 
            [ staging: 
...

如果这是检查员的输出,我会看看 projectObject 的构造方式(您是在创建一个数组,然后将某些内容分配给它的属性吗?在这种情况下,请创建一个对象) .

恐怕我不确定如何使用可用的信息获得请求的结果。

【讨论】:

    猜你喜欢
    • 2020-09-16
    • 2017-08-30
    • 2022-12-06
    • 2021-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    • 1970-01-01
    相关资源
    最近更新 更多