2017-02-27 102 views
1

我有一個test.json文件與數據:如何在java中查詢json對象?

{ 
    "name":"tet", 
    "id":"1", 
    "age" : "34" 
} 

現在,當我查詢select * from test;應該告訴我結果作爲

name id age 
----------- 
tet 1 34 

是否可以直接查詢JSON對象,因爲我們對XML做什麼?

+0

您使用的是什麼JSON庫?它是JSR-353還是其他的? –

回答

-2
JSONObject jsonObject=new JSONObject(); 
jsonObject.add("name","tet"); 
jsonObject.add("id",1); 
jsonObject.add("age",34); 
+0

我不想添加到json對象,我想從Json中檢索 – user7592766

+0

現在您可以檢索如下數據:jsonobject.name/id/age –

+0

select * from table;會給出一個表的結果嗎?以同樣的方式,如果我查詢選擇*從測試;我應該得到的JSON數據作爲名稱ID年齡 -------------- tet 1 34 – user7592766

0

我會說,你可以嘗試尋找一個庫,它允許你搜索throught JSON數據,或者你的JSON轉換爲一個JSONObjects和查詢您的數據在一個面向對象的方式。

也許這線程將幫助:

Query a JSONObject in java

0

流行傑克遜XML庫支持JsonPointer自2.3版本。這是類似的XPath查詢語言

輸入

[{ 
    "name":"tet", 
    "id":"1", 
    "age" : "34" 
},{ 
    "name":"tet", 
    "id":"1", 
    "age" : "34" 
},{ 
    "name":"tet", 
    "id":"1", 
    "age" : "34" 
},{ 
    "name":"tet", 
    "id":"1", 
    "age" : "34" 
}] 

ObjectMapper objectMapper = new ObjectMapper(); 
JsonNode root = objectMapper.readTree(new File("foo.json")); 
System.out.println(root.at("/0/name").asText()); 
0

沒有辦法直接從JSON來查詢,如果你想要,你必須創建一個新的類,會做你的要求,或者你可以從jackson-all-1.9.0.jar中使用ObjectMapper(下載並添加到你的類路徑),並創建一個新的傳輸對象TestTO.java揭示setter和getters,你將獲得你的數據像下面一樣..

1.創建TestTO.java

public class TestTO{ 

private String name; 
private int id; 
private int age; 

public String getName() { 
    return name; 
} 
public void setName(String name) { 
    this.name = name; 
} 
public int getId() { 
    return id; 
} 
public void setId(int id) { 
    this.id = id; 
} 
public int getAge() { 
    return age; 
} 
public void setAge(int age) { 
    this.age = age; 
} 

}

從對象2.read您的數據。

  final ObjectMapper mapper = new ObjectMapper(); 
      Test test = mapper.readValue(yourJson.json, TestTO.class); 
      String name = test.getName(); 
      int id = test.getId(); 
      int age = test.getAge(); 

,如果你的JSON包含多個測試對象,請使用測試陣列下面一樣,它會給你測試的陣列,您可以遍歷和獲取數據,如下圖所示。

  final ObjectMapper mapper = new ObjectMapper(); 
      TestTO[] test = mapper.readValue(yourJson.json, TestTO.class[]); 
      for(Test tst:test){ 
      String name = test.getName(); 
      int id = test.getId(); 
      int age = test.getAge(); 
      }