Javascript json以对象而不是字符串的形式出现

Javascript json以对象而不是字符串的形式出现,javascript,json,jquery,jsonp,Javascript,Json,Jquery,Jsonp,Json在我的本地主机上作为:/data/: { "children": [ { "name": "analytics", "size": "1243" }, { "name": "math", "size": "4343" }, { "name": "algebra", "size": "1936" }, { "name": "

Json在我的本地主机上作为:/data/:

{
"children": [
    {
        "name": "analytics",
        "size": "1243"
    },
    {
        "name": "math",
        "size": "4343"
    },
    {
        "name": "algebra",
        "size": "1936"
    },
    {
        "name": "calc",
        "size": "3936"
    },
    {
        "name": "geom",
        "size": "2136"
    },
    {
        "name": "Quant",
        "size": "4136"
    }
]
}

以下是我尝试访问json的方式:

var interval = setInterval(function() {
        $.getJSON("http://localhost:8080/dev_tests/d3/examples/data/flare2.json", function(json) {
            $.each(json.children,function(i,name){
            alert(json.children);
            });

        });
        }, 3000);
数据很好。也就是说,当我运行console.log(json)时,我可以在firebug中看到上面的json名称/值txt对。但是,在每个名称-值对之前,我会看到单词Object。例如,我的日志中没有显示{name=“analytics”,size=“1243”},。。它实际上显示:[Object{name=“analytics”,size=“1243”},…,这也是我的警报显示的:[Object Object]而不是name=“analytics”,size=“1243”。 为什么会这样?有没有办法在文本中获取json名称/值对,以便存储为javascript字符串


非常感谢。

jQuery在使用或指定响应为JSON时会自动解码响应。如果您想要普通响应,请改用。

jQuery在使用或指定响应为JSON时会自动解码响应。如果您想要普通响应,请改用。

JSON中的O代表“object.”这是一种将JavaScript对象序列化为字符串(并返回)的方法。一方面,您似乎依赖于转换(引用
子对象
)但另一方面,您不希望进行转换。如果您确实希望
子对象
成为所描述格式的字符串集合,则应以这种方式存储。如果您确实希望对象表示法(以及在客户端中转换为对象),则只需使用对象的属性即可

var interval = setInterval(function() {
    $.getJSON("http://localhost:8080/dev_tests/d3/examples/data/flare2.json", function(json) {
        $.each(json.children,function(i,item){
           alert("name = " + item.name + ", size = " + item.size);
        });

    });
    }, 3000);
JSON中的O代表“object”。这是一种将JavaScript对象序列化为字符串(并返回)的方法。一方面,您似乎依赖于转换(引用
子对象
)但另一方面,您不希望进行转换。如果您确实希望
子对象
成为所描述格式的字符串集合,则应以这种方式存储。如果您确实希望对象表示法(以及在客户端中转换为对象),则只需使用对象的属性即可

var interval = setInterval(function() {
    $.getJSON("http://localhost:8080/dev_tests/d3/examples/data/flare2.json", function(json) {
        $.each(json.children,function(i,item){
           alert("name = " + item.name + ", size = " + item.size);
        });

    });
    }, 3000);

你所说的一切都是firebug和alert的正常行为。你不能警告对象

下面是如何在$.get回调中循环响应的示例

$.each(json.children,function(i,item){
$('body').append('名称:'+item.Name+',大小:'+item.Size+'

')) })
您所说的一切都是firebug和alert的正常行为。您不能向对象发出警报

下面是如何在$.get回调中循环响应的示例

$.each(json.children,function(i,item){
$('body').append('名称:'+item.Name+',大小:'+item.Size+'

')) })
好吧,使用对象是我们的目标

实际上,json是一个对象数组

{
  "children": [ // <-- Array
          {...},// <- Object
          {...} // <- Object
  ]
}

嗯,使用对象是我们的意图

实际上,json是一个对象数组

{
  "children": [ // <-- Array
          {...},// <- Object
          {...} // <- Object
  ]
}

实际上,jQuery.getJSON是ajax调用的简写。有关ajax方法,请参见jQuery.getJSON页面。@JessevanAssen不完全是
$。getJSON
隐式地设置
数据类型:json
,与
$一样。ajax
您可以灵活地将
数据类型
指定为
文本
等等,我的意思是
jQuery.getJSON
实际上使用一些默认参数调用了
jQuery.ajax
方法,如页面所示。实际上,jQuery.getJSON是ajax调用的简写形式。有关ajax方法,请参见jQuery.getJSON页面。@JessevanAssen不完全是
$。getJSON
隐式设置
数据类型:json
$.ajax
一样,您可以灵活地将
数据类型
指定为
文本
etcNo,我的意思是
jQuery.getJSON
实际上使用一些默认参数调用
jQuery.ajax
方法,如页面上所示。啊啊啊啊啊!我明白了……就是这样。最后,我无法得到这个描述(obj到str)点击。非常感谢!!啊啊啊啊啊!我明白了…就是这样。最后。我无法点击这个描绘(obj到str)。非常感谢!!