JavaScriptオブジェクトをJson文字列にエンコードする


102

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関数のようなものを持ちたいです。


3
実際に何を試しましたか?トライアルのコードをいくつか提供してください...
Andreas Niedermair '24

回答:


163

変数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'
    }
  }
}

3
あなたは天才です。どうもありがとうございました。kが定義されました。問題は、オブジェクト{}の代わりにnew Array()を使用して私が愚かだったことでした。
Lukas Oppermann、2011

完璧に動作します...私はテストを行い、結果は素晴らしいです。ありがとう。 console.info(json); console.log(new_tweets["k"]); console.log(new_tweets["k"]["user_id"]); console.log(new_tweets["k"]["data"]["text"]);
エクイマン2013

これまでCORSとChromeのセキュリティについて読んだ後、これはJSONデータをエンコードするためのシンプルで効果的な方法です。非常にふさわしい+1
灰999

1
@TomášZato:なぜ具体的にそうなるのですか?それがあなたが示唆しているものである場合、JSON.stringifyPHPの前json_encodeに。
デイブウォード

はい、それは私が考えていたものです。JSON最近知りました。以前は、evalJSON応答の解析に使用していました。私のコードからevalが無視されることに満足しました。
トマーシュZato -復活モニカ

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.