2016-06-30 7 views
0

I ein Objekt zum Beispiel in Form haben:JavaScript json Objekt und Eingabearray Name

{ 
    "test": { 
     "valid": false, 
     "children": { 
      "a": { 
       "valid": false, 
       "children": { 
        "1": { 
         "valid": false, 
         "children": { 
          "c": { 
           "valid": false 
          }, 
          "d": { 
           "valid": false 
          } 
         } 
        } 
        ... 
       } 
      }, 
      "b": { 
       "valid": false 
      }, 
      // ... 
     } 
    } 
} 

Ich habe auch eine inputname="test[a][1][c]" oder name="test[b]" benannt. Ich muss die valid Eigenschaft vom Objekt mit dem gleichen Namen der Eingabe erhalten. Leider weiß ich nicht, wie ich dieses Problem lösen soll.

Mein erstes Problem ist, dass ich nicht weiß, wie man den eingegebenen Namen in einen Baum teilt. Danke für die Hilfe.

edit:

Wie bekommen universellen Wert 'gültig' aus dem Namen INPUT?

Ich brauche aus dem Namen von INPUT create: json ['Test'] ['Kinder'] ['a'] ['Kinder'] ['1'] ['Kinder'] ['c'] ['valid']

+1

Mögliches Duplikat [Zugang/Prozess (verschachtelte) Objekte, Arrays oder JSON] (http://stackoverflow.com/questions/11922383/access-process-nested-objects-arrays-or-json) – Teemu

+0

Sie vermissen eine Ebene. Sie haben Objekt> Test> Kinder> a. Du hast die Kinderebene verpasst. – nurdyguy

+0

Bitte demonstrieren, wenn ich: var name = $ (this) .attr ('name'), das heißt: test [a] [1] [c] und JSON-Struktur ist var Baum. Wie bekomme ich den Wert gültig? –

Antwort

0

Verwenden Sie JSON.parse, das JSON deserialisiert, um ein JavaScript-Objekt oder -Array zu erzeugen.

In diesem Beispiel wird JSON.parse verwendet, um JSON in das Objekt json_obj zu deserialisieren.

var json_obj = JSON.parse(json); 
var isValidForC = json_obj.test.children.a.children.1.children.c.valid; 
var isValidForB = json_obj.test.children.b.valid; 
+0

Danke, aber Sie müssen es universell durch Namenseingabe arbeiten. –