将 Javascript 对象编码为 Json 字符串

IT技术 javascript object json javascript-objects
2021-03-01 05:20:26

我想将 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':{...}}}

你明白了。无论我做什么,它都不起作用。所有的 JSON 编码器,比如 json2 等等

[]

嗯,这对我没有帮助。基本上我想要像phpencodejson函数这样的东西

2个回答

除非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'
    }
  }
}
工作完美......我做了一个测试,结果很棒。谢谢。 console.info(json); console.log(new_tweets["k"]); console.log(new_tweets["k"]["user_id"]); console.log(new_tweets["k"]["data"]["text"]);
2021-04-26 05:20:26
在阅读了有关 CORS 和 Chrome 安全性的所有时间之后,这是一种简单有效的 JSON 数据编码方式。一个当之无愧的 +1
2021-05-04 05:20:26
你是个天才。非常感谢你。k 已定义。问题是我使用 new Array() 而不是对象 {} 是愚蠢的。
2021-05-08 05:20:26
是的,这就是我的想法。JSON最近才知道过去,我曾经eval解析 JSON 响应。我很高兴 eval 将从我的代码中消失。
2021-05-12 05:20:26
@TomášZato:为什么会这样?JSON.stringify早于 PHP 的json_encode,如果这就是您所暗示的。
2021-05-17 05:20:26

你可以使用JSON.stringify像:

JSON.stringify(new_tweets);