OrientDB结果上的JSON错误

时间:2016-02-04 02:12:21

标签: orientdb

我在尝试解析JSON结果时遇到错误。我的http字符串如下所示:

String query_str =“http://192.168.1.67:2480/query/GratefulDeadConcerts/sql/select%20name%20from%20V%20where%20name='BERTHA'”;

应该是: 从V中选择名称,其中name ='BERTHA'

这会返回 查询结果:{“result”:[{“@ type”:“d”,“@ rid”:“# - 2:0”,“@ version”:0,“name”:“BERTHA”}}} < / p>

我的解析代码如下所示:

try {
Logging.log ("parseContent", "Entered in parseContent");
   JSONObject jsonData = new JSONObject(contentStr);
   JSONArray itemsArray = jsonData.getJSONArray(DEAD_result);
   Logging.log("parseContent", "After object Creation  ");
   for(int i=0; i<itemsArray.length(); i++) {
        Logging.log("parseContent", "Before name parse ");
        String name = jsonData.getString(DEAD_SONG_NAME);
        String song_type  = jsonData.getString(DEAD_SONG_TYPE);
        String type = jsonData.getString(DEAD_TYPE);
        String performances =jsonData.getString(DEAD_PERFORMANCES);

        }

我收到错误:

org.json.JSONException:没有名称

的值

at org.json.JSONObject.get(JSONObject.java:355) 在org.json.JSONObject.getString(JSONObject.java:515)

我认为这意味着JSON对象无法找到“名称”字段 在JSON字符串中。您可以在结果中看到名称字段。还有一些其他字段。

OrientDB 2.1.9

由于

1 个答案:

答案 0 :(得分:2)

尝试使用此代码

String contentStr="{'result':[{'@type':'d','@rid':'#-2:0','@version':0,'name':'BERTHA'}]}";
try {
    JSONObject jsonData = new JSONObject(contentStr);
    JSONArray itemsArray = jsonData.getJSONArray("result");
    for(int i=0; i<itemsArray.length(); i++) {
        JSONObject jsonObject = itemsArray.getJSONObject(i);
        String  name= jsonObject.getString("name");
    }
}