首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将对象字符串转换为JSON

将对象字符串转换为JSON
EN

Stack Overflow用户
提问于 2012-01-28 00:11:38
回答 16查看 583.3K关注 0票数 167

如何使用JavaScript (或jQuery)将描述对象的字符串转换为JSON字符串?

例如:转换此字符串(不是有效的JSON字符串):

代码语言:javascript
复制
var str = "{ hello: 'world', places: ['Africa', 'America', 'Asia', 'Australia'] }"

如下所示:

代码语言:javascript
复制
str = '{ "hello": "world", "places": ["Africa", "America", "Asia", "Australia"] }'

如果可能的话,我会尽量避免使用eval()

EN

回答 16

Stack Overflow用户

发布于 2013-12-16 07:24:28

在下面的链接中使用简单的代码:

http://msdn.microsoft.com/es-es/library/ie/cc836466%28v=vs.94%29.aspx

代码语言:javascript
复制
var jsontext = '{"firstname":"Jesper","surname":"Aaberg","phone":["555-0100","555-0120"]}';
var contact = JSON.parse(jsontext);

和反转

代码语言:javascript
复制
var str = JSON.stringify(arr);
票数 43
EN

Stack Overflow用户

发布于 2014-10-10 11:09:07

我希望这个小函数能将无效的JSON字符串转换为有效的字符串。

代码语言:javascript
复制
function JSONize(str) {
  return str
    // wrap keys without quote with valid double quote
    .replace(/([\$\w]+)\s*:/g, function(_, $1){return '"'+$1+'":'})    
    // replacing single quote wrapped ones to double quote 
    .replace(/'([^']+)'/g, function(_, $1){return '"'+$1+'"'})         
}

结果

代码语言:javascript
复制
let invalidJSON = "{ hello: 'world',foo:1,  bar  : '2', foo1: 1, _bar : 2, $2: 3, 'xxx': 5, \"fuz\": 4, places: ['Africa', 'America', 'Asia', 'Australia'] }"
JSON.parse(invalidJSON) 
//Result: Uncaught SyntaxError: Unexpected token h VM1058:2
JSON.parse(JSONize(invalidJSON)) 
//Result: Object {hello: "world", foo: 1, bar: "2", foo1: 1, _bar: 2…}
票数 29
EN

Stack Overflow用户

发布于 2012-01-28 00:18:54

请谨慎使用(因为eval()):

代码语言:javascript
复制
function strToJson(str) {
  eval("var x = " + str + ";");
  return JSON.stringify(x);
}

调用方式:

代码语言:javascript
复制
var str = "{ hello: 'world', places: ['Africa', 'America', 'Asia', 'Australia'] }";
alert( strToJson(str) );
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9036429

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档