2016-03-25 2 views
5

Come accedere al secondo numero "19", che si trova nell'array Numeri nel seguente JSON? Ho provato in tutti i modi e non sono stato in grado di farlo.accedere ai valori del seguente JSON

{ 
    "Numbers": [{ 
    "1": 6 
    }, { 
    "2": 19 
    }, { 
    "3": 34 
    }, { 
    "4": 38 
    }, { 
    "5": 70 
    }], 
    "MB": 5, 
    "MP": "05", 
    "DrawDate": "2016-03-22T00:00:00" 
} 
+1

'myVar.Numbers [1] [ '2']' –

+0

in quale lingua ?? – Jois

+0

Javascript è la lingua – ConfusedDeer

risposta

3

Si potrebbe accedere in questo modo:

console.log(jsonObj.Numbers[1][2]); 

Questo presuppone che si memorizzano che JSON in una variabile denominata jsonObj. Non è possibile utilizzare i numeri come chiave di proprietà dell'oggetto in modo da non poter fare solo jsonObj.Numbers[1].2.

1

È possibile accedere con

obj.Numbers[1][2] 

dove 1 è indice di un oggetto nella matrice e 2 sua key

4

È possibile accedere con:

object.Numbers[1]['2'] 

Cioè perché il Numbers oggetto è una matrice di oggetti valore-chiave in cui è il valore desiderato.

1

Per fare questo si dovrebbe analizzare in Javascript, in questo modo:

var myjson = JSON.parse('{"Numbers":[{"1":6},{"2":19},{"3":34},{"4":38},{"5":70}],"MB":5,"MP":"05","DrawDate":"2016-03-22T00:00:00"}'); 

Una volta che è stato analizzato si può fare

myjson.Numbers[1][2] 

Per accedere alla chiave (: 19) come bene si farebbe

myjson.Numbers[1] 
1

Assegnare l'intero json a var.

var obj = JSON.parse({"Numbers":[{"1":6},{"2":19},{"3":34},{"4":38},{"5":70}],"MB":5,"MP":"05","DrawDate":"2016-03-22T00:00:00"}); 



obj.Numbers[1][2] 

Si dovrebbe essere in grado di accedervi

+0

Non è necessario utilizzare JSON.parse perché è già JSON e non una stringa. –

1

Penso che sia molto semplice:

var myVars={"Numbers":[{"1":6},{"2":19},{"3":34},{"4":38},{"5":70}],"MB":5,"MP":"05","DrawDate":"2016-03-22T00:00:00"} 

myVars.Numbers vi darà: [{"1":6},{"2":19},{"3":34},{"4":38},{"5":70}] Questo elemento è un array: il primo elemento myVars.Numbers[0] è {"1":6}, il secondo è myVars.Numbers[1]{"2":19}. Finaly, myVars.Numbers[1][2] è 19. Questo significa che se si vuole acces al secondo numero 19 si deve scrivere: myVars.Numbers[1][2]

+1

Penso che sia facile, ma come ha detto Rayon Dabre, l'unica cosa da tenere a mente è che il formato JSON non supporta un carattere non valido, "Un nome di proprietà dell'oggetto può essere una qualsiasi stringa JavaScript valida o qualsiasi cosa che possa essere convertita a una stringa, inclusa la stringa vuota. Tuttavia, qualsiasi nome di proprietà che non sia un identificatore JavaScript valido (ad esempio, un nome di proprietà che ha uno spazio o un trattino o che inizia con un numero) è accessibile solo utilizzando il quadrato notazione della parentesi Questa notazione è anche molto utile quando i nomi delle proprietà devono essere determinati dinamicamente ... – ConfusedDeer