2016-04-20 2 views
0

Ich versuche, das analysierte object.data zu aktualisieren ist das JSON-Objekt vom Server erhalten.Update JSON.parsed Objekt in Javascript

var document_text = JSON.parse(data.projectData[0]['document_text']); 
for(var j = 0; j < document_text.length;j++) 
{ 
    var k = JSON.parse(document_text[j]); 
    var document_data = JSON.parse(k).text; 
    var page_number = JSON.parse(k).page_number; 
} 

Jetzt möchte ich das document_text Objekt aktualisieren, die den Text enthält und die page_number field.Note, dass ich das Objekt zwei times.First analysieren müssen, um den äußeren Wert zu analysieren dann die innere value.How bekommen können Ich aktualisiere die Felder von document_text (zB text, Seitennummer).

Dies ist die Originaldaten

["\"{\\\"text\\\":\\\"Osddsdsdsdsds \\\\n\\\\n to as \\\\\\\"sdfdsdsfsdfsdfsdf\\\\\\\") and CPGsddsdsdsdssdROsdsdsdsdP sdsdds, a \\\\sd sdds\\\\n\\\\n\\\\f\\\",\\\"page_number\\\":44}\"","\"{\\\"text\\\":\\\"Page 14 \\\\n\\\\nsdfsdfsdfdscopysdsdds\\\n\\\\n\\\\f\\\",\\\"page_number\\\":45}] 
+0

Ein kleines Beispiel Ein- und erwartete Ausgabe würde hier wirklich helfen ... – Adam

+0

sind Sie sicher, dass Sie brauchen, um all jene 'JSON.parse()'? Normalerweise brauchen Sie nur eines, um die serialisierten Daten in ein materialisiertes Objekt zu transformieren und damit zu versehen. Wie Sie geschrieben haben, gibt es viele Ebenen von JSON, die in JSON geschachtelt in JSON verschachtelt sind ... wie Triple Nesting. Das ist echt, aber bist du dir sicher, dass du das hast? – pid

+1

Bitte geben Sie ein Beispiel für die Originaldaten, wahrscheinlich verdichtet, so dass wir die tatsächlichen Daten nicht sehen müssen (sieht legal aus; vielleicht ist es keine gute Idee, diese Daten auf einer öffentlichen Website einzufügen). –

Antwort

1
var document_text = JSON.parse(data.projectData[0]['document_text']); 

/* At this point, document_text is already a JSON object. Iterating over it with 
a for loop doesn't make much sense. You can now just access its properties directly. */ 

document_text.text = "Some other text"; 
document_text.page_numer = 1; 

/* Now we can return it to where it came from by stringify'ing it */ 

data.projectData[0]['document_text'] = JSON.stringify(document_text); 
+0

Eigentlich document_text ist ein Array das ist der Grund warum ich über es iteriere – soldiershin

+0

Der Text, den Sie vor der Bearbeitung Ihres Posts gepostet haben, ist nur ein einzelnes Objekt. Unabhängig davon müssen Sie JSON.parse nur einmal aufrufen, auch wenn dies der Fall ist. – Adosi