当数组键具有更长的长度时,在解析json时出现A​​ndroid错误 [英] Android error on parse json when array key have more length

查看:124
本文介绍了当数组键具有更长的长度时,在解析json时出现A​​ndroid错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试从服务器解析json数组响应.例如,我可以简单地解析此响应:

echo json_encode(['result' => 0,'h'=>1,'m'=>2]);

但要解析此json格式:

echo json_encode(['result' => 0,'hour'=>1,'minute'=>2]);

我收到此错误:

 E/Response:: {"result":0,"hour":"1","minute":"35"}
 E/AndroidRuntime: FATAL EXCEPTION: main
 E/AndroidRuntime: Process: pishguy.ir.asrebidree, PID: 6322
 E/AndroidRuntime: java.util.UnknownFormatConversionException: Conversion: س
 E/AndroidRuntime:     at java.util.Formatter$FormatToken.unknownFormatConversionException(Formatter.java:1399)

我的代码:

JSONObject jsonObject = new JSONObject(response);
String result = jsonObject.getString("result");

if (result.equals("0")) {
    String hore = jsonObject.getString("hour");
    String minute = jsonObject.getString("minute");
}

已更新

问题是hourminute单词,而不是json数组中的result键.将hourminute更改为hm问题后

解决方案

您的result是contian int值...请尝试

int result = jsonObject.getInt("result");

i'm trying to parse json array response from server. for example i can simply parse this response :

echo json_encode(['result' => 0,'h'=>1,'m'=>2]);

but for parse this json format:

echo json_encode(['result' => 0,'hour'=>1,'minute'=>2]);

i get this error:

 E/Response:: {"result":0,"hour":"1","minute":"35"}
 E/AndroidRuntime: FATAL EXCEPTION: main
 E/AndroidRuntime: Process: pishguy.ir.asrebidree, PID: 6322
 E/AndroidRuntime: java.util.UnknownFormatConversionException: Conversion: س
 E/AndroidRuntime:     at java.util.Formatter$FormatToken.unknownFormatConversionException(Formatter.java:1399)

My code:

JSONObject jsonObject = new JSONObject(response);
String result = jsonObject.getString("result");

if (result.equals("0")) {
    String hore = jsonObject.getString("hour");
    String minute = jsonObject.getString("minute");
}

UPDATED

problem is hour and minute words, not result key in json array. after change hour and minute to h and m problem solved

解决方案

Your result is contian int value...try this

int result = jsonObject.getInt("result");

这篇关于当数组键具有更长的长度时,在解析json时出现A​​ndroid错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆