如何从 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 数组

在 node.js 中重命名 json 对象名称

如何从 JSON 解析到 Unity GameObject

如何在您的登录 api 的 Json 响应后重定向用户反应本机

如何基于 JSON 对象构建 ListView 并在 onItemClick 之后传递其数据

如何在android中将json对象从json数组转换为字符串数组