如何从 JSON 对象构建 JSON 字符串 [重复]
Posted
技术标签:
【中文标题】如何从 JSON 对象构建 JSON 字符串 [重复]【英文标题】:How to build a JSON string from a JSON object [duplicate] 【发布时间】:2013-11-28 15:52:38 【问题描述】:我正在尝试获取一个 JSON 对象并构建一个 JSON 字符串,但我不知道该怎么做。
这是我目前所拥有的,它给了我正确的输出。
var execs = '';
$.each(window.ob.executives, function(idx, obj)
execs = idx + ':' + obj.name;
);
我需要的是这样的字符串:
1: 'test1', 2: 'test2', 3: 'test3', 4: 'test4'
谁能告诉我如何构建这个字符串?
另外,您可能会注意到我使用了window
变量,我知道这不好。如果有人能告诉我如何获取另一个函数中的这个变量的内容,那将不胜感激。
编辑: stringify 不会给我我需要的东西。这是我得到的:
["test1":"1","test2":"2","test3":"3","test4":"4"]
【问题讨论】:
【参考方案1】:这里不需要 jQuery:
var execs = JSON.stringify( window.ob.executives );
编辑
OP指定变量的结构后,我建议如下(遍历两层嵌套对象,提取数据添加到中间对象,然后可以序列化):
var obj = ;
$.each(window.ob.executives, function( key, val )
$.each( val, function( iKey, iVal )
obj[ iVal ] = iKey;
);
);
var execs = JSON.stringify( obj );
【讨论】:
西尔科,谢谢。这没有给我我需要的东西。这是我得到的:["test1":"1","test2":"2","test3":"3","test4":"4"]
。我需要的是一对
括号内的所有索引和值
祝福你,Sirko。谢谢!
Sirko,有没有办法从索引中删除引号?我从他们那里得到一个错误
@NaN 你需要数字索引还是真实数组?对于前者,请尝试obj[ +iVal ] = iKey;
。
Sirko,我实际上已经解决了这个问题。我刚进去并对后端代码进行了一些更改。不过,有些东西会导致错误。似乎返回的 JSON 字符串被解释为 unicode。是这样吗?【参考方案2】:
您可以使用 JSON.stringify(JSON Object) 函数,将 JSON 对象转换为 JSON 字符串。
【讨论】:
谢谢。 stringify 并没有给我我需要的东西。 那你可以试试这个,var execs = ''; $.each(window.ob.executives, function(idx, obj) execs += idx + ':' + obj.name+','; ); execs=execs.substring(0,(execs.length-1)); execs+=''; 感谢技术。我也试试这个。 嘿,技术,这确实有效,但我遇到的唯一问题是值周围没有引号,这会使事情中断。不过谢谢你。 那你可以试试这个,execs += idx + ':"' + obj.name+'",';【参考方案3】:使用此代码JSON.stringify(data);
例如:
$.ajax(
type: "POST",
url: "/Item/Create",
data: JSON.stringify( "item": item, "status": status ),
dataType: 'json',
contentType: 'application/json;',
success: function (data)
,
error: function (data)
TestAlert("Error");
);
【讨论】:
以上是关于如何从 JSON 对象构建 JSON 字符串 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何从 json 对象构建键值的 JavaScript 数组
如何在您的登录 api 的 Json 响应后重定向用户反应本机