如何使用jquery将json结果写入div?

时间:2009-09-04 17:05:02

标签: jquery json

这可能是一个非常简单的问题,但我找不到任何有效的方法。

我正在尝试获取json结果并将其写入div的内部html以查看它的外观。

我有这样的事情:

$.getJSON("someurlthatgivesmejson",
    function(data){         
        $("#jsonmodel").html(data);  // what should this be??
    });
  });

更新

我能够通过

来显示一些文字
$("#jsonmodel").html($.param(data));

但是,它的格式不像浏览器如何显示json结果,就像javascript对象的结构一样。

5 个答案:

答案 0 :(得分:4)

您可以使用jquery-json

`$('#jsonmodel').html($.toJSON(data));`

答案 1 :(得分:2)

取决于数据是什么。如果你想把它写成一个字符串,那么你应该使用$ .get方法来获取它,这样就不会为你转换为js哈希

答案 2 :(得分:1)

您可以在浏览器中原生使用JSON.stringify,只需传递这样的spacer参数:

JSON.stringify(data, null, 2)

jsFiddle中的演示& Stack Snippets

// listener
$(":input").on("keyup change", WriteFormDataToDiv);

// call on load
WriteFormDataToDiv()

function WriteFormDataToDiv() {
  var data = $(":input").serializeArray()
  var html = JSON.stringify(data, null, 2)
  $("#formdata").html(html)
}
pre {
  padding: 15px;
  background: lightgrey;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>

<input type="text" name="cat"     value="frida" />
<input type="text" name="dog"     value="buddy" /><br/>
<input type="text" name="food"    value="pizza" />
<input type="text" name="dessert" value="ice cream" />

<pre id="formdata"></pre>

进一步阅读

答案 3 :(得分:0)

data是一个JavaScript对象,需要一个字符串。

答案 4 :(得分:0)

这是我使用的功能:

function unjsEncode(string){
            var newstring = string.replace(/\\x/g,'%');
            newstring = newstring.replace(/\\n/g,'');
            newstring = newstring.replace(/\\"/g,'"');
            newstring = decodeURIComponent(newstring);
            return newstring;
    }

感谢http://bytes.com/topic/javascript/answers/169509-how-decrypt-garbled-javascript 我希望这会有所帮助!