要素

2016-07-27 3 views
0

をネストされたJSONの値にアクセスし、私は私の質問のためのいくつかのcodeを見つけましたが、その用量は、私はJSONを持って要素

は私がの値を取得するにはどうすればよい

{ 
    "A":{ 
     "B":{ 
     "STATUS":"ok", 
     "TYPE":"Unknown", 
     "NAME":"UnchangedECN" 
     } 
    } 
} 

を言う私の場合には動作しない方法ステータスの種類と名前ここで

は、私はあなたがそれが簡単に対処できるようにすることJSONライブラリを使用することができます

long A ; 
String STATUS = ""; 
String TYPE = ""; 
String NAME = ""; 

ObjectMapper mapper = new ObjectMapper(); 
JsonNode root = mapper.readTree(new File("BOM.json")); 

// Get id 
A = root.path("A").asLong(); 
System.out.println("A : " + A); 

// Get Name 
JsonNode nameNode = root.path("A"); 
if (nameNode.isMissingNode()) { 
    // if "name" node is missing 
} else { 
    STATUS = nameNode.path("STATUS").asText(); 
    // missing node, just return empty string 
    TYPE = nameNode.path("TYPE").asText(); 
    NAME = nameNode.path("NAME").asText(); 

    System.out.println("STATUS : " + STATUS); 
    System.out.println("TYPE : " + TYPE); 
    System.out.println("NAME : " + NAME); 
} 

答えて

-1

を試してみたものです。例えば、org.json Mavenの依存関係を使用して:

<dependency> 
    <groupId>org.json</groupId> 
    <artifactId>json</artifactId> 
    <version>20160212</version> 
</dependency> 

は、私が希望JSONObjectを "アンラップ" するには、次のコードを使用:

ok 
Unknown 
UnchangedECN 
:以下の出力を吐き出す

@Test 
public void foo() { 
    String jsonString = "{'A':{'B':{'STATUS':'ok','TYPE':'Unknown','NAME':'UnchangedECN'}}}"; 
    JSONObject object = new JSONObject(jsonString); 
    JSONObject a = object.getJSONObject("A"); 
    JSONObject b = a.getJSONObject("B"); 
    System.out.println(b.getString("STATUS")); 
    System.out.println(b.getString("TYPE")); 
    System.out.println(b.getString("NAME")); 
}