解析JSON字符串(Stringify)

时间:2014-06-02 14:45:41

标签: ajax json coffeescript stringify

我想对任何有帮助的人说声谢谢。但我无法正确解析我的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)

我目前的结果:

{&#34; id&#34;:&#34; logger1&#34;,&#34; points&#34;:[{&#34; id&#34;:&#34; 00000000 / pulse_1&# 34;,&#34; interval&#34;:300000,&#34;启用&#34;:true}],&#34;报告&#34;:[{&#34;收集器&#34;:&#34 ; collector1@talkrnd.enernoc.net",&#34; interval&#34;:300000,&#34;启用&#34;:true}],&#34; capacity&#34;: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 

先谢谢你

1 个答案:

答案 0 :(得分:1)

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

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

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