2017-11-21 4 views
0

Das ist mein Objekt JSON:Stringify in Objekten JSON in einem Objekt JSON

var myJSon = { 
    "Student": "name", 
    "Answers":{ 
     "Answer1": { 
      "question": "question", 
      "answer": "black", 
      "time": "00:02:30", 
      "number_tentatives": "1" 
     }, 
     "Answer2": { 
      "question": "question", 
      "answer": "black", 
      "time": "00:02:30", 
      "number_tentatives": "2" 
     } 
    } 
}; 

Ich brauche in dem Objekt "Answer1" oder "Antwort2" zu füllen. Ich habe versucht,

myJSon.Respostas = JSON.stringify("One","hello","00:03:22","1"); 

Aber dies führt zu {Student":"\"name\"","Answers":"\"oi\"}

Was würde Ich mag {"Student": "\"name\"", "Answers": {"Answer1": {"question": "One", "answer": "hello" ,"time":"00:03:22" ,"number_tentatives": "1"}, " ist

+0

Entschuldigung mein schlechtes Englisch und das Format von Text im Stapelüberlauf –

+2

Der 'JSON.stringify' Befehl, den Sie zeigen, scheint überhaupt keine Beziehung zum Rest der Frage zu haben. Es macht nichts, dass es falsch ist, es sind völlig andere Daten. Wenn ich 'JSON.stringify' das Objekt in der Variablen' myJSon' (warum heißt es JSON? Es ist ein Objekt! JSON ist eine 'Zeichenkette'!) Bekomme ich das korrekte Ergebnis. Du erzählst uns nicht alles. Mit den gegebenen Informationen kann Ihr Problem nicht reproduziert werden. Bitte geben Sie ein reproduzierbares Beispiel an, das das Problem veranschaulicht. –

+0

alles in Ordnung, denn jetzt stringify vergessen, ich brauche nur Werte von Answer1 ändern und Antwort2 ist stringify nur eine Methode, die ich für die Werte übergeben versucht –

Antwort

1

Wenn Sie ein Objekt mit mehreren Antworten haben, sollte es ein Array oder eine Karte von Antworten sein.

Denken wir an Ihre Objekts Anfangszustand, da dies:

var myJson = {student: 'Student Name', answers: []};

So dann könnte man wie die Antworten Array beginnen Füllung:

myJson.answers.push({question: 'q', answer: 'a', time: 1, number_tentatives: 1});

Wenn Sie jetzt myJson.answers zugreifen würde es wäre ein Array mit einer Antwort darin.

Wenn Sie die Art und Weise noch denken würde, zu gehen Objekte sein (so ein ‚Schlüssel‘ zu jeder Antwort zugeordnet ist), würden Sie dies tun, statt push:

myJson.answers['answer1'] = {question: 'q', answer: 'a', time: 1, number_tentatives: 1};

0

Wenn Sie möchten weitere Daten hinzufügen möchten, dann können Sie dies versuchen:

myJSon.Answers.Answer3 ={"question":"One","answer":"hello","time":"00:03:22","number_tentatives":"1"}; 

dann testen Sie es wie

console.log(JSON.stringify(myJSon));