js怎么将string转换为json对象

JavaScript024

js怎么将string转换为json对象,第1张

转换方式有两种: 1、利用原生JSON对象,将对象转为字符串: 参考代码如下: var jsObj = {}//定义object jsObj.testArray = [1,2,3,4,5]//初始化 jsObj.name = 'CSS3'jsObj.date = '8 May, 2011'var str = JSON.stringify(jsObj)

//首先按照&把每一行都分开来

var str = "1*无sim卡或卡无效*已经连接*5*2014-01-10 09:23:46&1*无sim卡或卡无效*已经连接*5*2014-01-10 09:23:50&1*无sim卡或卡无效*已经连接*5*2014-01-10 09:23:54"

var mapArr = str.split('&')//吧每一行都分开来

mapArray = mapArray.map(function(itemStr){

  return itemStr.split('*')//在按照*号分开每列的值

})

//这样就得到了一个二维数组

//mapArray = [

//  ['1' , '无sim卡或卡无效' , '已经连接' , '5' , '2014-01-10 09:23:46'],

//  ['1' , '无sim卡或卡无效' , '已经连接' , '5' , '2014-01-10 09:23:50']

//  .....

//]

//关于处理的时候,你就自己对应着取值呗

错误原因:

前面你能成功取值是因为a是一个javascript对象而不是纯粹的字符串,所以可以用obj.attr的方式读取数值,

后面你用ajax获取的相似格式字符串的实际为JSON格式的字符串,所以用对象方法读值失败。

解决思路:

将JSON文本转换为JavaScript 对象后再用obj.attr的方式读值。

JSON 文本格式在语法上与创建 JavaScript 对象的代码相同。

由于这种相似性,无需解析器,JavaScript 程序能够使用内建的 eval() 函数,用 JSON 数据来生成原生的 JavaScript 对象。

具体方法:

假设用ajax获取的json文本存于变量jsonText中

var a = eval("(" + jsonText + ")")

相关资料:

http://www.w3school.com.cn/json/json_eval.asp