【问题标题】:Fetching JSON Data Error获取 JSON 数据错误
【发布时间】:2014-05-28 13:11:27
【问题描述】:

这是我想从中获取数据的 json 数据文件,但有以下内容 -

error: 05-28 12:42:41.691: W/System.err(2887): org.json.JSONException: No value for     
vehicle_type 05-28 12:42:41.691: W/System.err(2887):    at  
 org.json.JSONObject.get(JSONObject.java:354)

 05-28 12:42:41.691: W/System.err(2887):    at   
 org.json.JSONObject.getString(JSONObject.java:510)
 05-28 12:42:41.691: W/System.err(2887):    at   
 com.example.capo.ui.MyCarActivity.returnjson(MyCarActivity.java:124)
 05-28 12:42:41.691: W/System.err(2887):    at      
 com.example.capo.net.JSONPostRequest.onPostExecute(JSONPostRequest.java:63)
 05-28 12:42:41.691: W/System.err(2887):    at     
 com.example.capo.net.JSONPostRequest.onPostExecute(JSONPostRequest.java:1)

JSON代码:

{"status":"1","records":[{"vehicle_company":"jande","vehicle_type":"751","vehicle_color":"Black","vehicle_rc":"harry1234","vehicle_capacity":"6"}],"message":"selected
> Data"}

解析JSON的代码:

 //...
    // Parse String to JSON object
    try {

        jObj = new JSONObject(builder.toString());
        // jarray = new JSONArray(builder.toString());
    } catch (JSONException e) {
        Log.e("JSON Parser", "Error parsing data " + e.toString());
    }

    // return JSON Object
    return jObj;

}
//...

POJO Java 类将对象映射到: 公共类 MyCar {

public String                                                       

 vehicle_type,vehicle_company,vehicle_color,vehicle_rc,vehicle_capacity;



  public String getVehicle_type() {
     return vehicle_type;
 }

 public void setVehicle_type(String vehicle_type) {
     this.vehicle_type = vehicle_type;
 }
 public String getVehicle_company() {
     return vehicle_company;
 }

 public void setVehicle_company(String vehicle_company) {
     this.vehicle_company = vehicle_company;
 }

 public String getVehicle_color() {
    return vehicle_color;
 }

 public void setVehicle_color(String vehicle_color) {
     this.vehicle_color = vehicle_color;
 }

 public String getVehicle_rc() {
     return vehicle_rc;
}

public void setVehicle_rc(String vehicle_rc) {
     this.vehicle_rc = vehicle_rc;
 }

 public String getVehicle_capacity() {
     return vehicle_capacity;
 }

public void setVehicle_capacity(String vehicle_capacity) {
    this.vehicle_capacity = vehicle_capacity;
 }

}

【问题讨论】:

  • 太长只贴解析代码
  • 先生帮我解决这个错误
  • 您的 JSON 无效。 jsonformatter.curiousconcept.com
  • 发布相关的解析代码,其余的不是必需的,堆栈跟踪告诉您的 json 解析错误,并按照其他人的建议检查 json 是否有效
  • 是的,我已经发布了你可以在上面看到

标签: java php android json


【解决方案1】:

转到JSONLint 并对其进行解析,您将看到您的JSON 在记录中的语法无效(缺少'":'):

你的:

   {
    "status": "1",
    "records[
        {
            "vehicle_company": "jande",
            "vehicle_type": "751",
            "vehicle_color": "Black",
            "vehicle_rc": "harry1234",
            "vehicle_capacity": "6"
        }
    ],
    "message": "selectedData"
   }

正确:

 {
    "status": "1",
    "records": [
        {
            "vehicle_company": "jande",
            "vehicle_type": "751",
            "vehicle_color": "Black",
            "vehicle_rc": "harry1234",
            "vehicle_capacity": "6"
        }
    ],
    "message": "selectedData"
}

【讨论】:

  • 没有,在它之前我已经像这样使用了 Json,但我只从这个得到错误
  • 对不起,我上传了错误的 json 文件.. 现在我上传了正确的
【解决方案2】:

你的 json 在结果数组中是错误的,它会像:

"result":

【讨论】:

  • 还没有得到答复
  • 您的 json 数据不正确,请向编写此 Web 服务的服务器人员询问。
【解决方案3】:

你发布的json(我相信不是复制粘贴错误)是错误的:

{"status":"1","记录[{"vehicle_company":"jande","vehicle_type":"751","vehicle_color":"Black","vehicle_rc" :"harry1234","vehicle_capacity":"6"}],"message":"选定数据"}

应该是(格式化的):

 {
  "status":"1",
  "records":[
    {
     "vehicle_company":"jande",
     "vehicle_type":"751",
     "vehicle_color":"Black",
     "vehicle_rc":"harry1234",
     "vehicle_capacity":"6"
  }
  ],
  "message":"selected Data"
}

【讨论】:

  • 对不起,我上传了错误的 json 文件.. 现在我上传了正确的,同样的错误再次退出
【解决方案4】:

好的,我建议你转储数组“记录”中包含的对象和父对象:

jObj = new JSONObject(builder.toString());
Log.v("JSON Parser", "jObj:"+jObj);
Log.v("JSON Parser", "array:"+jObj.getJSONArray("records"));
JSONObject elem = jObj.getJSONArray("records").getJSONObject(0);
Log.v("JSON Parser", "obj:"+elem);

看看会出现什么...

【讨论】:

  • 同样的错误:05-28 13:52:51.678: W/System.err(1554): org.json.JSONException: 车辆类型没有值 05-28 13:52:51.678: W/ System.err(1554): 在 org.json.JSONObject.get(JSONObject.java:354) 05-28 13:52:51.678: W/System.err(1554): 在 org.json.JSONObject.getString(JSONObject .java:510) 05-28 13:52:51.678: W/System.err(1554): 在 com.example.capo.ui.MyCarActivity.returnjson(MyCarActivity.java:124) 05-28 13:52:51.678 : W/System.err(1554): at com.example.capo.net.JSONPostRequest.onPostExecute(JSONPostRequest.java:63) 05-28 13:52:51.678: W/System.err(1554):
  • 行 Log.v("JSON Parser", "jObj:"+jObj);不能失败 tho.. 应按原样转储 jObj..
  • 兄弟,我按照你说的做了,但是如果不显示一些输入的数据或上述错误,什么都不会发生
猜你喜欢
  • 1970-01-01
  • 2018-09-28
  • 2020-10-04
  • 1970-01-01
  • 2021-06-26
  • 1970-01-01
  • 2016-06-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多