js怎么把字符串转换成json

JavaScript07

js怎么把字符串转换成json,第1张

例如:

JSON字符串:

var str1 = '{ "name": "cxh", "sex": "man" }'

JSON对象:

var str2 = { "name": "cxh", "sex": "man" }

一、JSON字符串转换为JSON对象

要使用上面的str1,必须使用下面的方法先转化为JSON对象:

//由JSON字符串转换为JSON对象

var obj = eval('(' + str + ')')

或者

var obj = str.parseJSON()//由JSON字符串转换为JSON对象

或者

var obj = JSON.parse(str)//由JSON字符串转换为JSON对象

然后,就可以这样读取:

Alert(obj.name)

Alert(obj.sex)

特别注意:如果obj本来就是一个JSON对象,那么使用eval()函数转换后(哪怕是多次转换)还是JSON对象,但是使用parseJSON()函数处理后会有问题(抛出语法异常)。

字符串格式json转化成json对象有3种方式:

1:js下用eval生成JSON对象 ---通过eval() 函数可以将JSON字符串转化为对象。

2:使用函数方式

3:使用js的json库或者jQuery提供的js库 --- 如果基于安全的考虑的话,最好是使用一个 JSON 解析器。 一个 JSON 解析器将只接受 JSON 文本。所以是更安全的。

示例代码如下:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/htmlcharset=utf-8" />

<title>字符串格式json如何转化成json对象</title>

<style type="text/css"></style>

<script type="text/javascript">

//方法1:js下用eval生成JSON对象

function strJsonToJsonByEval(jsonData){

var json = eval("(" + jsonData +")")//转换为json对象

return json

<html>

<head>

<script type="text/javascript">

var data = '{"return_code":0,"return_message":"success","data":{"data":[{"id":"1","question":"公主令牌在哪交?"},{"id":"2","question":"公主护使有什么用?"},{"id":"3","question":"角斗场在哪?"},{"id":"4","question":"北部断层在哪?"},{"id":"5","question":"欢乐令有什么用?"},{"id":"6","question":"令牌积分有什么用?"},{"id":"7","question":"南部断层在哪?"},{"id":"8","question":"大妖魔令牌交给谁?"},{"id":"9","question":"神工坊在哪?"},{"id":"10","question":"警戒妖珠有什么用?"}]}}'

function ShowData(){

var obj = eval("("+data+")")

alert("return_code:"+obj["return_code"])

alert("return_message:"+obj["return_message"])

alert("第一个问题id:" + obj["data"]["data"][0]["id"])

alert("第一个内容id:" + obj["data"]["data"][0]["question"])

}

</script>

</head>

<body onload="ShowData()">

{"return_code":0,"return_message":"success","data":{"data":[{"id":"1","question":"公主令牌在哪交?"},{"id":"2","question":"公主护使有什么用?"},{"id":"3","question":"角斗场在哪?"},{"id":"4","question":"北部断层在哪?"},{"id":"5","question":"欢乐令有什么用?"},{"id":"6","question":"令牌积分有什么用?"},{"id":"7","question":"南部断层在哪?"},{"id":"8","question":"大妖魔令牌交给谁?"},{"id":"9","question":"神工坊在哪?"},{"id":"10","question":"警戒妖珠有什么用?"}]}}

</body>

</html>