2013-01-11 17 views
10

के लिए एक महत्वपूर्ण मूल्य जोड़ी जोड़ इस json वस्तु मैंएक json वस्तु

{ 
    "name": "John Smith", 
    "age": 32, 
    "employed": true, 
    "address": { 
     "street": "701 First Ave.", 
     "city": "Sunnyvale, CA 95125", 
     "country": "United States" 
    }, 
    "children": [ 
     { 
      "name": "Richard", 
      "age": 7 
     }, 
     { 
      "name": "Susan", 
      "age": 4 
     }, 
     { 
      "name": "James", 
      "age": 3 
     } 
    ] 
} 

साथ काम कर रहा हूँ है मैं एक कुंजी-मान पेयर के रूप में चाहते:

"collegeId": { 
         "eventno": "6062", 
         "eventdesc": "abc" 
              }; 

मैं concat की कोशिश की लेकिन उसने मुझे परिणाम दिया || प्रतीक और मैं cdnt पुनरावृत्त। मैं spilled इस्तेमाल किया लेकिन यह केवल अल्पविराम हटा देता है।

concattedjson = JSON.stringify(JSON.parse(json1).concat(JSON.parse(json2))); 

मैं मौजूदा जेसन ऑब्जेक्ट में एक कुंजी जोड़ी मान कैसे जोड़ूं? मैं जावास्क्रिप्ट में काम कर रहा हूं।

+0

@Aaush, 'करता json1' वस्तु पहले कोड उदाहरण में वर्णित होते हैं? –

+0

@ जोनाथनएम हां इसमें पहले कोड – Aayush

उत्तर

11

यह सबसे आसान तरीका है और यह मेरे लिए काम कर रहा है।

var testJson = { 
     "name": "John Smith", 
     "age": 32, 
     "employed": true, 
     "address": { 
      "street": "701 First Ave.", 
      "city": "Sunnyvale, CA 95125", 
      "country": "United States" 
     }, 
     "children": [ 
      { 
       "name": "Richard", 
       "age": 7 
      }, 
      { 
       "name": "Susan", 
       "age": 4 
      }, 
      { 
       "name": "James", 
       "age": 3 
      } 
     ] 
    }; 
    testJson.collegeId = {"eventno": "6062","eventdesc": "abc"}; 
+0

आप पिछले दो पंक्तियों को केवल सरल बना सकते हैं: 'testJson.collegeId = {"eventno": "6062", "eventdesc": "abc"}; ' –

+0

हाँ वास्तव में यह सबसे अच्छा और सबसे सरल तरीका है :) –

3

तब आप उस वस्तु के लिए, इस तरह दो और महत्वपूर्ण मूल्य जोड़े बनाने के संदर्भ "collegeId" पर एक वस्तु बनाने की जरूरत है, और:

var concattedjson = JSON.parse(json1); 
concattedjson["collegeId"] = {}; 
concattedjson["collegeId"]["eventno"] = "6062"; 
concattedjson["collegeId"]["eventdesc"] = "abc"; 

कि concattedjson मानते हुए अपने json वस्तु है। यदि आपके पास केवल स्ट्रिंग प्रस्तुति है तो आपको इसे विस्तारित करने से पहले parse की आवश्यकता होगी।

संपादित

demo जो लोग सोचते हैं इस काम नहीं करेगा।

+0

में वर्णित ऑब्जेक्ट शामिल है यदि आपका 'कॉन्सटेडजसन' ओपी के समान है, तो यह काम नहीं करेगा। उसका एक स्ट्रिंग है। –

+0

@ जोनाथनएम - शायद आपको मेरे लिए पोस्ट किए गए लिंक को पढ़ना चाहिए। यह एक JSON ऑब्जेक्ट है, और हाँ, वे मौजूद हैं। –

+0

मुझे लगता है कि आप मेरे उत्तर पर टिप्पणी में क्या कह रहे हैं, और मैंने स्पष्ट किया। आपका उत्तर अभी भी अपने JSON * स्ट्रिंग * पर काम नहीं करेगा। –

3

बस JSON.parse() का उपयोग कर JSON स्ट्रिंग को किसी ऑब्जेक्ट में कनवर्ट करें और फिर संपत्ति जोड़ें। यदि आपको इसे स्ट्रिंग में वापस चाहिए, तो JSON.stringify() करें।

बीटीडब्ल्यू, JSON ऑब्जेक्ट जैसी कोई चीज़ नहीं है। वस्तुएं हैं, और जेएसओएन तार हैं जो उन वस्तुओं का प्रतिनिधित्व करते हैं।

+0

http://www.json.org/javadoc/org/json/JSONObject।एचटीएमएल –

+0

ओपी ने एक स्ट्रिंग को ऑब्जेक्ट में कनवर्ट करने के लिए नहीं पूछा था, उन्होंने पूछा कि ऑब्जेक्ट का विस्तार कैसे करें। शायद आपको अपना जवाब संपादित करना चाहिए। –

+1

@ ट्रेविस, हाँ, वहां * जेएसओएन ऑब्जेक्ट्स हैं, लेकिन ओपी की तरह नहीं उनके बारे में सोच रहा है। JSON ऑब्जेक्ट्स जेएसओएन लाइब्रेरी द्वारा बनाई गई ऑब्जेक्ट्स हैं ताकि '.parse() 'और' .stringify() 'जैसी गुण हो सकें। –

0
const newTestJson = JSON.parse(JSON.stringify(testJson)); 
newTestJson.collegeId = {"eventno": "6062","eventdesc": "abc"}; 
testJson = newTestJson; 
+0

यह है एक कोड केवल जवाब। आम तौर पर, कुछ विवरण जोड़कर यह बताते हुए कि कोड क्या करता है और यह कैसे काम करता है बेहतर होगा। क्या आप अपना उत्तर [संपादित करें] कर सकते हैं और कुछ टिप्पणी जोड़ सकते हैं? धन्यवाद! –

संबंधित मुद्दे