Кодирование объекта Javascript в строку Json - PullRequest
98 голосов
/ 25 июля 2011

Я хочу закодировать объект 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 и такие, производят

[]

Ну, это мне не помогает.В основном я хотел бы иметь что-то вроде функции php encodejson.

Ответы [ 2 ]

157 голосов
/ 25 июля 2011

Если переменная 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'
    }
  }
}
13 голосов
/ 05 декабря 2015

Вы можете использовать эту функцию:

JSON.stringify(new_tweets);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...