JQuery का उपयोग करके JSON ऑब्जेक्ट कैसे बनाएं


80

नीचे प्रारूप में मेरे पास JSON ऑब्जेक्ट है:

temp:[
        {
           test:'test 1',
           testData:  [ 
                       {testName: 'do',testId:''}
                         ],
           testRcd:'value'                             
        },
        {
            test:'test 2',
           testData:  [
                            {testName: 'do1',testId:''}
                         ],
           testRcd:'value'                           
        }
      ],

ऊपर प्रारूप के लिए मैं jquery में JSON ऑब्जेक्ट कैसे बना सकता हूं। मैं एक गतिशील JSON ऑब्जेक्ट बनाना चाहता हूं।

जवाबों:


213

बस अपना डेटा इस तरह एक वस्तु में डालें:

var myObject = new Object();
myObject.name = "John";
myObject.age = 12;
myObject.pets = ["cat", "dog"];

बाद में इसके माध्यम से कठोर करें:

var myString = JSON.stringify(myObject);

इसके लिए आपको jQuery की आवश्यकता नहीं है। यह शुद्ध जेएस है।


2
क्या यह डायनामिक रूप से इंडेक्स नाम बनाने के लिए उपयोगी है। पूर्व के लिए: var नाम = $ ('# myname')। val (); myObject.name = "john" // यहाँ नाम सूचकांक एक इनपुट बॉक्स से डायनामैकली होगा।
मो। सहादत हुसैन

3
उपरोक्त टिप्पणी के लिए एक टक्कर: स्थैतिक कोष्ठक में लिपटे एक चर के साथ किसी भी स्थिर मान जैसे कि .name .ageया .petsबस इसे प्रतिस्थापित करें, डॉट सहित। उदाहरण: myObject[cssProp] = cssVal;फिर उन दो सीएसएस चरों के मूल्यों को जो भी वस्तु में उपयोग किया जाएगा। यहाँ एक jsFiddle है: http://fiddle.jshell.net/arttronics/rucjtbza/
Arttronics

31

"JSON ऑब्जेक्ट" का कोई मतलब नहीं है: JSON जावास्क्रिप्ट ऑब्जेक्ट घोषणा की संरचना के आधार पर एक विनिमय प्रारूप है।

यदि आप अपनी जावास्क्रिप्ट ऑब्जेक्ट को एक जंस स्ट्रिंग में बदलना चाहते हैं, तो उपयोग करें JSON.stringify(yourObject);

यदि आप एक जावास्क्रिप्ट ऑब्जेक्ट बनाना चाहते हैं, तो बस इसे इस तरह करें:

var yourObject = {
          test:'test 1',
          testData: [ 
                {testName: 'do',testId:''}
          ],
          testRcd:'value'   
};

1
@guillaumealgis, क्या आप अपने रोल को मेरे संपादन में वापस समझा सकते हैं? यदि आप JSONLint के माध्यम से ऑब्जेक्ट चलाते हैं, तो इसे अमान्य के रूप में चिह्नित किया गया है (बाएं हाथ की कुंजी को दोहरे उद्धृत करने की आवश्यकता है)। मैं तर्क नहीं दे रहा हूं कि आप गलत हैं, मैं सीखना चाहता हूं कि आप क्यों मानते हैं कि यह वैध JSON है क्योंकि यह कुछ ऐसा हो सकता है जो मुझे समझ में नहीं आता है। यदि आप मेरे संस्करण को उसी सत्यापनकर्ता के माध्यम से चलाते हैं तो यह वैध JSON के रूप में वापस आता है।
डेलियोटॉग

1
@delliottg जावास्क्रिप्ट को मान्य करने के लिए JSON सत्यापनकर्ता का उपयोग न करें। कृपया मेरे उत्तर की शुरुआत फिर से पढ़ें।
सेग्यूरेट को अस्वीकार करता है

2
@delliottg मैं यह नहीं कह रहा हूं कि यह एक वैध JSON है। इस उत्तर का बिंदु JSON की JS ऑब्जेक्ट को अलग करना है। जेएस दुभाषिया में डायस्ट्रो कोड चलाने की कोशिश करें और आप देखेंगे कि यह ठीक चलता है।
गिलियूम एल्जीस

3
टिप्पणियों के लिए धन्यवाद दोस्तों, मुझे एहसास हुआ कि मुझे इस बात की एक बुनियादी गलतफहमी थी कि इस सामान को फिर से पढ़ने के बाद यह कैसे काम करता है, और मैं जिस परियोजना पर काम कर रहा हूं, उसके बारे में अपना प्रश्न पूछ रहा हूं। मुझे पूरा यकीन है कि मैं अब समझ गया हूं, और आपके धैर्य के लिए धन्यवाद।
delliottg

5

मेरा मानना ​​है कि वह एक निर्देशिका के लिए नया json लिखने के लिए कह रहा है। आपको कुछ जावास्क्रिप्ट और PHP की आवश्यकता होगी । इसलिए, अन्य उत्तरों को वापस करने के लिए:

script.js

var yourObject = {
  test:'test 1',
  testData: [ 
    {testName: 'do',testId:''}
   ],
   testRcd:'value'   
};
var myString = 'newData='+JSON.stringify(yourObject);  //converts json to string and prepends the POST variable name
$.ajax({
   type: "POST",
   url: "buildJson.php", //the name and location of your php file
   data: myString,      //add the converted json string to a document.
   success: function() {alert('sucess');} //just to make sure it got to this point.
});
return false;  //prevents the page from reloading. this helps if you want to bind this whole process to a click event.

buildJson.php

<?php
    $file = "data.json";  //name and location of json file. if the file doesn't exist, it   will be created with this name

    $fh = fopen($file, 'a');  //'a' will append the data to the end of the file. there are other arguemnts for fopen that might help you a little more. google 'fopen php'.

    $new_data = $_POST["newData"]; //put POST data from ajax request in a variable

    fwrite($fh, $new_data);  //write the data with fwrite

    fclose($fh);  //close the dile
?>

1

एप्स इनपुट फील्ड वैल्यू कैसे प्राप्त करें जैसे कि json

temp:[
        {
           test:'test 1',
           testData:  [ 
                       {testName: 'do',testId:''}
                         ],
           testRcd:'value'                             
        },
        {
            test:'test 2',
           testData:  [
                            {testName: 'do1',testId:''}
                         ],
           testRcd:'value'                           
        }
      ],

0

निष्पत्ति JSONवस्तु

var data = {
        view:{
            type: 'success', note:'Updated successfully',
        },
    };

आप इसे पार्स कर सकते हैं data.view.typeऔरdata.view.note

JSON वस्तु और अंदर ऐरे

var data = {
          view: [ 
                {type: 'success', note:'updated successfully'}
          ],  
     };

आप इसे पार्स कर सकते हैं data.view[0].typeऔरdata.view[0].note


-1
var model = {"Id": "xx", "Name":"Ravi"};
$.ajax({    url: 'test/set',
                        type: "POST",
                        data: model,
                        success: function (res) {
                            if (res != null) {
                                alert("done.");
                            }
                        },
                        error: function (res) {

                        }
                    });

यह अच्छा है लेकिन सवाल C # या एएसपी को शामिल नहीं करता
Machavity

@ मेचविटी, इसमें आपको c # कहां मिलेगा?
रवि आनंद

1
वह टिप्पणी आपके उत्तर के पहले संशोधन के बारे में थी, जिसमें उसमें C # था। अब यह भी कम समझ में आता है, क्योंकि आप modelचर को हार्डकोड कर रहे हैं । यह प्रश्न है: "जावास्क्रिप्ट में, मैं रनटाइम पर एक ऑब्जेक्ट कैसे बना सकता हूं और JSON संकेतन में उस ऑब्जेक्ट का प्रतिनिधित्व करता हूं" , जो आपका जवाब अभी भी नहीं दिखाता है।
कोडकस्टर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.