将 Javascript 对象编码为 Json 字符串

Posted

技术标签:

【中文标题】将 Javascript 对象编码为 Json 字符串【英文标题】:Encoding Javascript Object to Json string 【发布时间】:2011-10-12 05:03:56 【问题描述】:

我想将 javascript 对象编码为 JSON 字符串,但遇到了相当大的困难。

对象看起来像这样

new_tweets[k]['tweet_id'] = 98745521;
new_tweets[k]['user_id'] = 54875;       
new_tweets[k]['data']['in_reply_to_screen_name'] = "other_user";
new_tweets[k]['data']['text'] = "tweet text";

我想把它变成一个 JSON 字符串,然后放到一个 ajax 请求中。

'k':'tweet_id':98745521,'user_id':54875, 'data':...

你明白了。无论我做什么,它都不起作用。所有像 json2 这样的 JSON 编码器都会产生

[]

嗯,这对我没有帮助。基本上我想有类似 php encodejson 函数的东西。

【问题讨论】:

您实际尝试了什么?请提供一些您的试验代码... 【参考方案1】:

除非定义了变量k,否则这可能就是造成您麻烦的原因。这样的事情会做你想做的事:

var new_tweets =  ;

new_tweets.k =  ;

new_tweets.k.tweet_id = 98745521;
new_tweets.k.user_id = 54875;

new_tweets.k.data =  ;

new_tweets.k.data.in_reply_to_screen_name = 'other_user';
new_tweets.k.data.text = 'tweet text';

// Will create the JSON string you're looking for.
var json = JSON.stringify(new_tweets);

您也可以一次完成所有操作:

var new_tweets = 
  k: 
    tweet_id: 98745521,
    user_id: 54875,
    data: 
      in_reply_to_screen_name: 'other_user',
      text: 'tweet_text'
    
  

【讨论】:

你是个天才。非常感谢。 k 已定义。问题是我愚蠢地使用 new Array() 而不是对象 。 完美运行...我做了一个测试,结果很棒。谢谢。 console.info(json); console.log(new_tweets["k"]); console.log(new_tweets["k"]["user_id"]); console.log(new_tweets["k"]["data"]["text"]); 在阅读了关于 CORS 和 Chrome 安全性的所有内容之后,这是一种对 JSON 数据进行编码的简单而有效的方法。一个当之无愧的 +1 @TomášZato:为什么会这样? JSON.stringify 早于 PHP 的 json_encode,如果这就是你所暗示的。 是的,我就是这么想的。我最近发现了JSON。过去,我使用eval 来解析 JSON 响应。我很高兴 eval 将从我的代码中消失。【参考方案2】:

您可以使用JSON.stringify 喜欢:

JSON.stringify(new_tweets);

【讨论】:

以上是关于将 Javascript 对象编码为 Json 字符串的主要内容,如果未能解决你的问题,请参考以下文章

gRPC笔记与相关问题

Working With JSON

javascript - 知识笔记

json数据重组

如何将 json 编码的 PHP 数组转换为 Javascript 中的数组? [复制]

javascript数据相关处理,序列化反序列化,数据编码与解码