Menyandikan Objek Javascript ke string Json

102

Saya ingin menyandikan objek Javascript menjadi string JSON dan saya mengalami banyak kesulitan.

Object itu terlihat seperti ini

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";

Saya ingin memasukkan ini ke dalam string JSON untuk dimasukkan ke dalam permintaan ajax.

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

Anda mendapatkan gambarannya. Tidak peduli apa yang saya lakukan, itu tidak berhasil. Semua pembuat enkode JSON seperti json2 dan produk semacam itu

[]

Nah, itu tidak membantu saya. Pada dasarnya saya ingin memiliki sesuatu seperti encodejsonfungsi php .

Lukas Oppermann
sumber
3
apa yang sebenarnya kamu coba? berikan beberapa kode uji coba Anda ...
Andreas Niedermair

Jawaban:

163

Kecuali variabelnya kditentukan, mungkin itulah yang menyebabkan masalah Anda. Sesuatu seperti ini akan melakukan apa yang Anda inginkan:

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);

Anda juga dapat melakukan semuanya sekaligus:

var new_tweets = {
  k: {
    tweet_id: 98745521,
    user_id: 54875,
    data: {
      in_reply_to_screen_name: 'other_user',
      text: 'tweet_text'
    }
  }
}
Dave Ward
sumber
3
Kamu jenius Terima kasih banyak. K didefinisikan. Masalahnya adalah saya menjadi bodoh menggunakan Array () baru alih-alih objek {}.
Lukas Oppermann
Bekerja dengan sempurna ... Saya membuat tes dan hasilnya luar biasa. Terima kasih. console.info(json); console.log(new_tweets["k"]); console.log(new_tweets["k"]["user_id"]); console.log(new_tweets["k"]["data"]["text"]);
equiman
Setelah sekian lama membaca tentang CORS dan keamanan Chrome, ini adalah cara sederhana dan efektif untuk menyandikan data JSON. +1 yang sangat pantas
diterima
1
@ TomášZato: Mengapa secara khusus? JSON.stringifymendahului PHP json_encode, jika itu yang Anda singgung.
Dave Ward
Ya, itulah yang saya pikirkan. Saya mengetahuinya JSONbaru-baru ini. Di masa lalu, saya biasa evalmengurai tanggapan JSON. Saya senang eval akan gon dari kode saya.
Tomáš Zato - Kembalikan Monica
14

Anda bisa menggunakan JSON.stringifyseperti:

JSON.stringify(new_tweets);
Luca C.
sumber