我在将整数值从JSON解析为String时遇到问题,因此我可以将其添加到数组列表中。
我曾尝试使用Integer.valueOf
,但对于此特定问题的格式以及Integer.valueOf
是否会实际工作,我还是有些困惑。
这是到目前为止我可以使用的代码
try {
JSONArray jsonArray = new JSONArray(response);
vehicleMakes = new String[jsonArray.length()];
for (int i = 0; i < jsonArray.length(); i++) {
String make = jsonArray.getJSONObject(i).get("make").toString();
String model = jsonArray.getJSONObject(i).get("model").toString();
String reg = jsonArray.getJSONObject(i).get("license_number").toString();
// int year = jsonArray.getJSONObject(i).get("year").toString();
Vehicle V = new Vehicle(make, model, reg);
vehicleArrayList.add(V);
}
}
catch (JSONException e) {
e.printStackTrace();
}
我正在尝试为此添加整数变量,例如
int year = jsonArray.getJSONObject(i).get("year").toString();
如何添加呢?
答案 0 :(得分:1)
int year = jsonArray.getJSONObject(i).getInt("year");
String strYear = String.valueOf(year);
使用它。
答案 1 :(得分:1)
我不确定您使用的是什么库,但是如果是org.json,则可以尝试如下操作:
int year = jsonArray.getJSONObject(i).getInt("year");
答案 2 :(得分:0)
仔细看看这一行:
int year = jsonArray.getJSONObject(i).get("year").toString();
您试图添加一个整数和一个字符串,因为java是一种类型化的语言,它将无法正常工作,并且您可能会收到编译器标记的编译时错误,为解决此问题,您有几个选择,我的建议是: / p>
int result = Integer.parseInt(yourString) // good option, will account for ascii codes ang give you the correct value
// now convert to a string like so:
String.valueOf(result);
// so your code would be:
int year = Integer.parseInt(jsonArray.getJSONObject(i).get("year").toString());
答案 3 :(得分:0)
您可以使用以下方式将String转换为int
Double
答案 4 :(得分:0)
public static String[] toStringArray(JSONArray array) {
if(array==null)
return null;
String[] arr=new String[array.length()];
for(int i=0; i<arr.length; i++) {
arr[i]=array.optString(i);
}
return arr;
}
答案 5 :(得分:0)
如果编译器无法识别这种方式,请添加org.json库。
示例:
String year = String.valueOf(jsonObject.getInt("year"));
或您的情况:
String year = String.valueOf(jsonArray.getJSONObject(i).getInt("year"));