2016-04-03 31 views
0

İki boyutlu JSON dizim var. Verileri ilk boyuttan ["dimension-1"] alabilirim, ancak veriyi ikinci boyuttan alamıyorum: data ["dimension-1"] ["dimension-2"]. Dizimin ikinci boyutundan tek satır almanın uygun yolu nedir?Node.js 2 boyutlu JSON dizisinden satır alır.

+0

Bize JSON Dizinizi Ekleyin. Lütfen :) –

+0

Kesinlikle bir Burada rray veri ["dimension-1"] bir özellik değil bir dizi erişir - bu yüzden benim cevabım zaman kaybı olabilir. – chriskelly

+0

İşte benim JSON: http://pastebin.com/BGxK4f39 Ben id özelliğinin değerini almak istiyorum –

cevap

1

veri [ "boyut-1"] [ "boyutu-2"] - - bir nesne yerine görünüyor dolayısıyla gibi görünmelidir. o bir benzeri erişmek gerekir sonra

var data =[[1,2], [3,4]] 

bir dizi olmadığını

ama (gösterge SAYISAL - değil dizeleri ya da başka):

data[0][1] // will display 2 
1

A 2 boyutlu JSON dizisi şuna benzer:

[ 
    ["a", "b", "c"], 
    ["d", "e", "f"], 
    ["g", "h", "i"] 
] 

ikinci sütunda son sütunu erişmek istediğiniz varsayalım. yani "f", o zaman numaraya göre numaraya erişmeniz gerekir. yani .:

data[1][2]

DÜZENLEME:

stictly konuşursak, benim orijinal yanıt doğrudur. 2 boyutlu dizinize indislerle erişilebilir.

Ancak, hemen şimdi verilerinin biçimini bilerek, ben de tavsiye ederim:

size

verilerinizi sorgulamak veya oluşturmak için basit ve anlamlı yollarını vermek için bir kütüphane (örn lodash) Lütfen kullanın kendi işlevi. ör .:

var category = getCategory(x.data, 1525, 170); 

function getCategory(data, id, catId) { 
    return data 
     .filter(d => d.id === id) 
     .map(d => d.categories 
       .filter(c => c.id === catId) 
       .map(c => c.title) 
       .shift() 
     ) 
     .shift() 
} 

İyi şanslar! Sonra

var data = { 
    "dimension-1" : { 
    "dimension-2" : 'value' 
    } 
} 

data["dimension-1"]["dimension-2"] // will display 'value' 

ve yolunuzu Tamam:

1

Sen özelliklere sahip bir nesne var ayrıca diziler veya nesnelerin bir karışımı. Bir dizi olan data özelliğinin kimliğini çıkarmaya çalışıyorsanız, özelliği seçmeniz gerekir, başka bir nesneyi döndüren diziyi (ilk öğe 0'dır) girmeniz gerekir. Ardından sadece mülkü seçin.

Sen kullanımı durumda aşağıdaki gibi bir şey gerekir: -

objectName.data[0].id 

veya

Bu böyle verilerde özeliikten içinden kimliği ayıklanması içindir
objectName["data"][0]["id"]; 

(yani Sağladınız): -

var objectName = { 
    "total_pages": 1424, 
    "total_rows": 1424, 
    "data": [ 
    { 
     "id": 1525, 
     "television_id": 1, 
     // other stuff 
     "categories": [ 
     { 
      "id": 170, 
      "title": "title" 
     }, 
     { 
      "id": 4, 
      "title": "message" 
     } 
     ] 
    } 
    ] 
}