जावास्क्रिप्ट स्ट्रिंग के लिए जावास्क्रिप्ट ऑब्जेक्ट एन्कोडिंग


102

मैं एक जावास्क्रिप्ट ऑब्जेक्ट को 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फंक्शन जैसा कुछ करना चाहूंगा ।


3
आपने वास्तव में क्या प्रयास किया? कृपया अपने परीक्षणों के कुछ कोड प्रदान करें ...
एंड्रियास नीडेर्मेयर

जवाबों:


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
आप एक प्रतिभाशाली हैं। आपका बहुत बहुत धन्यवाद। के को परिभाषित किया गया था। समस्या मुझे एक वस्तु {} के बजाय नए ऐरे () का उपयोग करके बेवकूफ बना रही थी।
लुकास ओपरमन जू

सही काम करता है ... मैं एक परीक्षण करता हूं और परिणाम भयानक हैं। धन्यवाद। console.info(json); console.log(new_tweets["k"]); console.log(new_tweets["k"]["user_id"]); console.log(new_tweets["k"]["data"]["text"]);
बराबर

इस समय के बाद कोर और क्रोम सुरक्षा के बारे में पढ़ना, यह JSON डेटा को एनकोड करने का एक सरल और प्रभावी तरीका है। एक बहुत अच्छी तरह से लायक +1
ashes999

1
@ TomáZZato: विशेष रूप से यह क्यों होगा? JSON.stringifyPHP के पूर्ववर्ती json_encode, अगर तुम क्या करने के लिए alluding रहे हैं।
डेव वार्ड

हां, मेरे मन में इसी का ख्याल आ रहा था? मुझे JSONबहुत हाल ही में पता चला । अतीत में, मैं evalJSON प्रतिक्रियाओं को पार्स करता था। मुझे ख़ुशी थी कि मेरे कोड से eval gon होगा।
टॉम ज़ातो -

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.