Javascript 解析json字符串

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/5071115/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-23 15:31:12  来源:igfitidea点击:

parse json string

javascriptjqueryjson

提问by G-Man

I have the following Json string

我有以下 Json 字符串

{ "Users" : [ 
    { "Name" : "user99",
      "Value" : "test"
    },
    { "Name" : "test2",
      "Value" : "test"
    }
 ] 
}

I am trying to parse it and print out each name and value - what is the easiest way to do this ? I tried jQuery.parseJSON but I do not know how to use it I guess

我正在尝试解析它并打印出每个名称和值 - 最简单的方法是什么?我试过 jQuery.parseJSON 但我猜我不知道如何使用它

Sample code would be great

示例代码会很棒

回答by Brad Christie

var json = '{"Users":[{"Name":"user999","Value":"test"},{"Name":"test2","Value":"test"}]}';

var json_parsed = $.parseJSON(json);

for (var u = 0; u < json_parsed.Users.length; u++){
    var user = json_parsed.Users[u];
    $('body').append($('<p>').html('User: '+user.Name+'<br />Value: '+user.Value));
}

Results in:

结果是:

<p>User: user999<br />Value: test</p>
<p>User: test2<br />Value: test</p>

jsFiddle Example: http://jsfiddle.net/bradchristie/XtzjZ/1/

jsFiddle 示例:http: //jsfiddle.net/bradchristie/XtzjZ/1/

回答by jondavidjohn

You actually have an array of objects so..

你实际上有一个对象数组,所以..

var obj = $.parseJSON(string);

var users = obj.users;    

for x in users {
    alert(users[x].Name);
    alert(users[x].Value);
}

回答by Ray

You can use jQuery.parseJSON, here's an example:

你可以使用 jQuery.parseJSON,这是一个例子:

var jsonString = '{"key":"value","otherkey":"othervalue"}';
data = $.parseJSON(jsonString);
alert(data.key); // Shows: value

回答by peter

<script>
var str = '{"Users":[{"Name":"user999","Value":"test"},{"Name":"test2","Value":"test"}]}';
str = eval('('+str+')');
alert(str.Users[0].Name);

//var str = '{"x":{"a":"1"}}';
//alert(str.x.a);
</script>

回答by James Sumners

For the JSON you have given, $.parseJSONshould return an object, myObj, that can be accessed like so:

对于您提供的 JSON,$.parseJSON应该返回一个对象,myObj可以像这样访问:

var users = myObj.Users,
    user0_name = users[0].Name;