2014-02-20 94 views
0

我得到格式化json字符串与所有\ before“和\ n换行符。如何将此字符串转换为常规javascript字典? 我想用''和\”替换所有\ n“但它有点暴力解决方案。?有没有moreelegant方式如何将格式化字符串转换为常规javascript字典?

+0

['JSON.parse()'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse) – zzzzBov

回答

0

这听起来像您收到JSON编码数据将原始数据转换成一个对象,使用the JSON.parse function

var test = "{\"foo\":\"bar\"}"; 
var data = JSON.parse(test); 
console.log(data); 
0

我不知道我明白你的意思了'JavaScript字典',但根据我的经验,将JSON字符串转换为任何类型的可用JavaScript对象的最简单方法是使用JSON.parse,请参阅Parse JSON in JavaScript?有关这方面的一些很好的信息。

同样在未来你想要做什么的小样本,你的源数据等将是有帮助的!

0

这是一个转义字符串,你应该忽略它,并使用eval将返回由json字符串表示的对象。 A JSON字符串只是一个JavaScript序列化对象,因此您可以使用javascript评估并返回表示的“映射”或对象。 换行符在json中有效,所以你不需要删除它们。

var o = eval("o = {name:\"test\"}"); 
alert(o.name); 
0

您可能正在考虑使用其他语言(如Objective C或C#)中的字典实现 - JavaScript没有字典实现。那么,您的问题是如何解析JSON,以便您可以将一些值输入到键值对中?如果是这样,那么听起来像JSON.parse将为你工作。

如果你的问题是关于如何实现像在JavaScript字典,从JSON填充的数据 - 那么你要解析JSON,并设置了一些简单的JavaScript对象,像一本字典:

var dictionary = {"key1":"hello", "key2":"hello2", "key3":"hello3"}; 
console.log(dictionary["key3"]); // gives the value "hello3" 
相关问题