【问题标题】:Parsing JSON strings (Stringify)解析 JSON 字符串 (Stringify)
【发布时间】:2014-07-22 17:35:46
【问题描述】:

我只想对任何提供帮助的人说声谢谢。但我无法正确解析我的 AJAX 响应:

我的 AJAX 请求:

$ ('#sumbit_LoggingGet').on 'click', ->
  username = $('#login_username').val()
  password = $('#login_password').val()
  mac_id = $('#login_LoggingGetmac').val()
  id = $('#login_LoggingGetid').val()

  $.ajax
    type: "GET"
    url: start_url + mac_id + "/log-config/" + id
    dataType: "json"
    crossDomain: true
    cache: false
    beforeSend: beforeSend(username, password)

    success: (data) ->
      console.dir data
      successMessage("""<h1>Logging Get Results</h1>""")
      clearColor(areaText = '#header_username')
      clearColor(areaText = '#header_password')
      clearColor(areaText = '#header_LoggingGetmac')
      clearColor(areaText = '#header_LoggingGetid')

      $('#data-results').html JSON.stringify(data,undefined,2)
      #(data, null, "\t", 2)

我目前的结果:

{ "id": "logger1", "points": [ { "id": "00000000/pulse_1", "interval": 300000, "enabled": true } ], "reports": [ { "collector ": "collector1@talkrnd.enernoc.net", "interval": 300000, "enabled": true } ], "capacity": 16070400000 }

真实结果:

{
"id": "logger1",
"points": [
    {
        "id": "00000000/pulse_1",
        "interval": 300000,
        "enabled": true
    }
],
"reports": [
    {
        "collector": "collector1@talkrnd.enernoc.net",
        "interval": 300000,
        "enabled": true
    }
],
"capacity": 16070400000
}

想要的输出

id: "logger1" 
points: "id": "00000000/pulse_1", "interval": 300000, "enabled": true 
reports: "collector": "collector1@talkrnd.enernoc.net", "interval": 300000, "enabled": true
capacity: 16070400000 

提前致谢

【问题讨论】:

  • 有什么问题?你得到了正常的结果。你想让我们编写代码来产生你的“想要的输出”吗?如果是这样的话,那就没有了。我们不是来为你做你的工作的。你编写一些代码来尝试这样做,然后我们会尝试帮助修复它。
  • 谢谢,但我确实已经编写了代码,甚至注释了可能有用的代码,但结果却是一长串。我能够正确打印出我的其他 6 个功能。所以我在寻求帮助而不是代码。为了清楚起见,只是想知道我的 stringify 行做错了什么......
  • 我已经阅读了文档,但没有任何工作正常。 developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/…
  • 一切正常。但我正在尝试正确解析。

标签: ajax json coffeescript stringify


【解决方案1】:

在您的真实结果(和当前结果)中,points 指向一个数组,其条目或条目是映射"id": "00000000/pulse_1", "interval": 300000, "enabled": true

在您的“所需”输出中,points 包含一个地图,而不是一个数组,我认为这是不合适的。点数是复数意味着您想要许多可能有序的项目,因为数组给了您。

所以我想问你为什么要强制将数据放入不适合它的模具中,如果你真的想要一个点,你可以使用results.points = results.points[0]

【讨论】:

    猜你喜欢
    • 2013-10-03
    • 2015-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-11
    • 2015-07-31
    • 2014-01-24
    相关资源
    最近更新 更多