【问题标题】:Javascript Iterate over .NET SerializedJsonJavascript 迭代 .NET SerializedJson
【发布时间】:2012-12-11 16:11:42
【问题描述】:

这里是 NET 人,所以我对 Javascript(或 JQuery)非常生疏

我从服务器端 .NET 序列化了我需要在客户端访问的列表。字符串结果采用以下格式。

[{"id":"1","name":"xxx"},{"id":"2","name":"yyy"}]

我如何在 Javascript 中遍历它?我很难真正获得数组中的值。我最终遍历了 JSON 字符串的每个字符。

function BuildList() {

           var result = '<%= JSON %>';

           for (var obj in result) {
                alert("Obj: " + obj);
                for (var property in result[obj]) {
                    alert(property + "value: " + result[obj][property]);
                }
            }

       }

【问题讨论】:

  • 不要将 JSON 变量放在引号中 var result = &lt;%=JSON%&gt;;
  • @jwatts1980:一个好主意,但并不总是理想的。它也会弄乱 VS 自动格式化。
  • @musefan:同意。我为你的回答 +1 了 :)

标签: javascript jquery .net json


【解决方案1】:

Javascript 内置了将 JSON 转换为 javascript 对象的函数,试试这个:

var myObject = JSON.parse(myJSONtext);

此代码示例是 taken from here,您可以在其中阅读更多相关信息。


在你的例子中,它可以这样使用:

var result = '<%= JSON %>';
var resultObject = JSON.parse(result);
var firstId = resultObject[0].id;

Here is a working example

【讨论】:

    【解决方案2】:

    您可以使用$.parseJSON() 将字符串文字解析为一个对象,然后您可以循环该对象的属性。

    function BuildList() {
        var result = '[{"id":"1","name":"xxx"},{"id":"2","name":"yyy"}]';
        var resultObject = $.parseJSON(result);
    
        $.each(resultObject, function(key, value) {
             alert("Obj: " + + value.id + ' / ' + value.name);
        })
    }
    
    BuildList()
    

    Example fiddle

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-18
      • 2016-07-09
      • 2013-03-03
      • 2021-02-12
      • 2011-02-08
      • 2015-03-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多