Javascript 如何将字符串解析为json
我在将字符串解析为json时遇到问题。 我要做的步骤: 我有用cookie编码的字符串数据 要获取我使用的字符串,请执行以下操作:Javascript 如何将字符串解析为json,javascript,jquery,json,Javascript,Jquery,Json,我在将字符串解析为json时遇到问题。 我要做的步骤: 我有用cookie编码的字符串数据 要获取我使用的字符串,请执行以下操作: var data = Base64.decode('W3sidCI6MTM4NTg5MjE4MDAwMCwiZiI6MSwiayI6ImZzZGYifV0$') 现在变量数据等于: "{"testes":[{"d":1386081060000,"f":1,"t":"da"},{"d":1386081060000,"f":1,"t":"test"}]}" 然后我想
var data = Base64.decode('W3sidCI6MTM4NTg5MjE4MDAwMCwiZiI6MSwiayI6ImZzZGYifV0$')
现在变量数据等于:
"{"testes":[{"d":1386081060000,"f":1,"t":"da"},{"d":1386081060000,"f":1,"t":"test"}]}"
然后我想将数据字符串解析为json
所以我正试着去做
JSON.parse(data)
我犯了一个错误。我想这是因为开头和结尾的双引号。
有人能帮我吗?你可以在这里在线验证json
有效格式如下所示
[
{
"enc": "dsad"
}
]
引号很好,但请尝试删除后面的逗号:
改变
"[{"enc":dsad,}]"
到
除非删除数组中最后一个元素的尾随逗号,否则脚本在IE中无法工作。您的浏览器控制台(F12)是否向您抛出错误?在编辑问题之前
您的JSON有两个问题
用逗号拆分的对象属性不应包含尾随逗号(缺少最终属性)
对象属性值应为以下类型之一:string、number、Object、array、true、false、null
()
这意味着您的示例中正确的JSON应该是:
[{"enc":"dsad"}]
注意:包装示例的引号可能只是您的浏览器控制台输出的字符串,这些引号不太可能真的存在-如果存在,那么您需要删除它们
问题编辑后
由于问题的更新,新提供的JSON示例有效,但包装引号除外。这些需要删除,可以使用以下javascript完成:
data = data.substring(1, data.length - 1);
为了验证JSON,您有一个额外的逗号,后面没有属性。尝试删除它。不是有效的json。。。VALID>'[{“enc”:“dsad”}]'如果您有错误消息,那么您应该始终在问题中包括逗号不是唯一的问题,请参阅问题的注释
data = data.substring(1, data.length - 1);