Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Javascript对象中显示字典_Javascript_Dictionary - Fatal编程技术网

在Javascript对象中显示字典

在Javascript对象中显示字典,javascript,dictionary,Javascript,Dictionary,我正在从服务器返回此响应: callback({"City": "Miami", "State": "FL", "Street": "9th Street", "Name": "Big 12", "Zip": "65201", "Lat": -48.219999999999999, "Telephone": "5732168906", "Long": 32.0, "Events": "[{\"End Time\": \"2011-01-22 23:36:31\", \"Name\": \"Mar

我正在从服务器返回此响应:

callback({"City": "Miami", "State": "FL", "Street": "9th Street", "Name": "Big 12", "Zip": "65201", "Lat": -48.219999999999999, "Telephone": "5732168906", "Long": 32.0, "Events": "[{\"End Time\": \"2011-01-22 23:36:31\", \"Name\": \"Margaritas\", \"Start Time\": \"2011-01-22 15:36:31\"}, {\"End Time\": \"2011-01-22 19:36:39\", \"Name\": \"Dollar Bottles\", \"Start Time\": \"2011-01-22 15:36:39\"}, {\"End Time\": \"2011-01-23 23:36:31\", \"Name\": \"All You Can Drink\", \"Start Time\": \"2011-01-23 15:36:31\"}]"})
这里是我试图解析响应并在“今晚列表”中显示它的地方。使用data.Events,我可以在屏幕上显示整个字典数组

function callback(data){
    console.log(data);
    $("#tonight-list").append("<li role='option' tabindex='0' class='ui-li ui-li-static ui-btn-up-c'>Starts:" + 
    data.Events  + 
    "<li>");
函数回调(数据){
控制台日志(数据);
$(“#今晚列表”).append(
  • 开始:“+ 数据.事件+ “
  • ”;
  • 但是,我不知道如何访问每个元素(开始时间、结束时间、名称等)。当我尝试data.Events[0]时,它只给出data.Events中的第一个字符


    如何访问事件数组中的每个字典键?我只是想不出语法-如果我能看到此对象类型的所有选项,那就太好了。提前感谢您的帮助!

    JSON dude!只需从服务器返回有效的JSON并使用evalJSON。然后您就可以通过相应的键访问每个对象

    编辑:

    基本上是


    data.responseText.evalJSON();

    将JSON响应中的
    事件设置为实数组,而不是字符串,然后您可以这样使用它:

    var obj = JSON.parse(reponseText);
    var event = obj.Events[0];
    alert(event["End Time"]); // hurray
    
    JSON响应

    callback({
      "City": "Miami",
      "State": "FL",
      "Street": "9th Street",
      "Name": "Big 12",
      "Zip": "65201",
      "Lat": -48.219999999999999,
      "Telephone": "5732168906",
      "Long": 32.0,
      "Events": [{
        "End Time": "2011-01-22 23:36:31",
        "Name": "Margaritas",
        "Start Time": "2011-01-22 15:36:31"
      },
      {
        "End Time": "2011-01-22 19:36:39",
        "Name": "Dollar Bottles",
        "Start Time": "2011-01-22 15:36:39"
      },
      {
        "End Time": "2011-01-23 23:36:31",
        "Name": "All You Can Drink",
        "Start Time": "2011-01-23 15:36:31"
      }]
    })​;
    

    我知道我需要这样的东西!每当我调用data.evalJSON()时;它声明对象没有evalJSON方法。我需要返回与服务器不同的内容吗?content_type='application/javascript;charset=utf-8'是我当前返回的内容。application/json或者您可以返回文本响应。无论哪种方式,您都需要从响应对象获取responseText。谢谢galambalazs!Changing var obj=JSON.parse(data.Events)的第一行;使一切按需工作:)