0

问题 ::

我知道这是一个多余的问题,但我在其他类似问题上找不到什么帮助......

我有一个 json 文件。

我可以很好地加载 json,但是当我尝试用这个输出特定元素时

div.innerHTML = jsonfromfile[element];

我只得到这个...

[object Object]

作为我的输出...

如何让整个元素而不是这个 [object Object] 显示?

更多代码来感受它是如何完成的......

var activity;
function jsfr() {
    $.getJSON('myjson.json', function(response){
    jsonfromfile = response;
    })  
}

.

.

.

解决方案::来自弗朗西斯·斯大林的回答

我添加了一个新功能...

        var items;
    function outty(data) {

            $.each(data, function(key, val) {
                items=items+key+","+val+";";
            });
    }

我在 json 上设置了深度,给我留下了一个我发送给 outty 的对象......

    dpth = jsonfromfile["elementOne"]["elSubone"]["elsuboneSub"];
    outty(dpth);
    div.innerHTML=items;

这是显示所有打印到的 div 的 HTML...

    <div class="col-rght">
        <div class="text" id="postcomp"></div>
    </div> <!--div class="col-rght"-->

这会将您想要的 json 深度的对象变成一个丑陋的字符串,然后您可以对其进行格式化以进行显示..

如果您喜欢 html 列表,请查看斯大林是如何做到的,但要对他的 appendTo('div') 感到厌倦......这会将您的列表放在每个 div 中。尝试将要打印的 div 的类的名称放在前面的句点 appendTo('.outputbox')

4

3 回答 3

1

您不能将 json 对象直接附加到您的 html 中。你必须解析并转换成字符串

$.getJSON('myjson.json', function(data) {
var items = [];
$.each(data, function(key, val) {
items.push('<li id="' + key + '">' + val + '</li>');
});
$('<ul/>', {
'class': 'my-new-list',
html: items.join('')
}).appendTo('div');
});

http://api.jquery.com/jQuery.getJSON/

于 2013-04-25T10:59:41.000 回答
0

利用JSON.stringify(yourjsonobjecthere)

于 2013-04-25T10:43:23.373 回答
0

尝试div.innerHTML = JSON.stringify(jsonfromfile[element]);

于 2013-04-25T10:43:56.057 回答