103

我想将 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 编码器都会产生

[]

好吧,这对我没有帮助。基本上我想有类似phpencodejson函数的东西。

4

2 回答 2

164

除非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'
    }
  }
}
于 2011-07-24T22:15:08.887 回答
16

你可以JSON.stringify像这样使用:

JSON.stringify(new_tweets);
于 2015-12-05T09:45:57.087 回答