2010-10-28 108 views
3

找到下面的JSON響應...如何訪問名稱中有空格的Json對象?

{"Object": 
      {"PET ANIMALS":[{"id":1,"name":"Dog"}, 
          {"id":2,"name":"Cat"}], 
      "Wild Animals":[{"id":1,"name":"Tiger"}, 
          {"id":2,"name":"Lion"}] 
      } 
} 

在上述反應,什麼是找到「寵物動物」和「野生動物」的長度的方式來......

+3

在哪種編程語言中? – 2010-10-28 12:00:45

+0

@Marcelo LOL很好的問題 – 2010-10-28 12:03:01

回答

12
var json = /* your JSON object */ ; 

json["Object"]["PET ANIMALS"].length // returns the number of array items 

使用循環打印項目的陣列中的號碼:

var obj = json["Object"]; 
for (var o in obj) { 
    if (obj.hasOwnProperty(o)) { 
     alert("'" + o + "' has " + obj[o].length + " items."); 
    } 
} 
+0

有無論如何得到使用索引的長度。例如, json [「Object」] [0] .length而不是json [「Object」] [「PET ANIMALS」]。長度 – Sri 2010-10-28 15:33:41

+0

@Sri有趣的問題。我不確定,但我認爲不是。對象是**無序**屬性​​的集合,所以沒有訂單可以獲得第一,第二,第三等屬性。但你可以使用循環 - 我更新了我的答案。 – 2010-10-28 15:59:25

1

你沒有指定語言,所以這裏是Perl中的一個例子:

#!/usr/bin/perl 
use strict; 
use warnings; 
use v5.10; 
use JSON::Any; 
use File::Slurp; 

my $json = File::Slurp::read_file('test.json'); 
my $j = JSON::Any->new; 
my $obj = $j->jsonToObj($json); 

say scalar @{$obj->{'Object'}{'PET ANIMALS'}}; 

# Or you can use a loop 

foreach my $key (keys %{$obj->{'Object'}}) { 
     printf("%s has %u elements\n", $key, scalar @{$obj->{'Object'}{$key}}); 
} 
+0

哦,thanks.i想在JavaScript中 – Sri 2010-10-28 15:33:15