2016-08-03 2 views
-1

nicht abrufen Wert_1 von DataObject.Showing undefined.Konnte den Wert von JSON-Objekt in Javascript

 var errorMessage; 
     var dataObject ={"project_type":"{\"value_1\":\"Ground Mount\"}"}; 
     var project_type_str = dataObject['project_type']; 
     project_type_str = JSON.stringify(project_type_str); 
     if (project_type_str != null && project_type_str.length != 0) { 
      errorMessage = ''; 
     } else { 
      errorMessage = 'Please select a project type'; 
     } 
     alert(project_type_str); 
     var responseJson = {}; 
     var project_type_obj = JSON.parse(project_type_str); 
     alert(project_type_obj); 
     var value = project_type_obj["value_1"]; 

     alert(value); 

Vielen Dank für Ihre Antworten.Bitte helfen mir

+0

Es ist nicht klar, was Sie versuchen –

+0

Warum dieser Schritt zu tun: 'project_type_str = JSON.stringify (project_type_str);'? 'project_type_str' ist bereits JSON – Andreas

+0

project_type_str = JSON.stringify (project_type_str); macht keinen Sinn –

Antwort

1

project_type_str ist bereits eine Zeichenfolge, also keine Notwendigkeit, JSON.stringify es. Der Code sollte gut funktionieren, wenn Sie die Zeile entfernen

diese Zeile entfernen

project_type_str = JSON.stringify(project_type_str); 

Ein Vergleich für Ihre bessere Verständlichkeit

Mit Original-Code

enter image description here

Mit dem li ne entfernt

enter image description here

+0

Vielen Dank, es funktioniert nach meiner Anforderung. –

0

Sie Zeichen, das Objekt zu definieren, nicht diese zusätzlichen Anführungszeichen müssen und entkommen. Tun Sie dies:

var dataObject = { 
    "projectType": { 
     "value1": "groundMount" 
    } 
}; 

EDIT: Ich sehe jetzt, dass Sie absichtlich JSON schreiben in seiner String-Darstellung, so dass Sie es später analysieren können. Ich hoffe, dass Sie einen speziellen Anwendungsfall haben, in dem Sie so etwas tun müssen. Ansonsten wird es viel einfacher sein, das Objekt so zu definieren, wie ich es habe.