[英]parse json java result null
我坚持用java解析json。 这是我的代码:
package url.process;
import java.util.ArrayList;
import java.util.List;
import org.json.simple.JSONArray;
import org.json.simple.JSONAware;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
public class jsonArray implements JSONAware{
private long l;
public jsonArray(long l){
this.l=l;
}
public long getArray(){
return l;
}
public void setArray(long l){this.l=l;}
@Override
public String toJSONString() {
StringBuilder sb = new StringBuilder();
sb.append("{");
sb.append("\""+getArray()+"\"");
sb.append("}");
return sb.toString();
}
public static void main(String[] args){
// doc doi tuong thanh chuoi
List <jsonArray> listjsonarray = new ArrayList<jsonArray>(){
{
add( new jsonArray(76543456));
add( new jsonArray(112233445));
add( new jsonArray(546372));
add( new jsonArray(9876553));
}
};
System.out.println(JSONArray.toJSONString(listjsonarray));
//doc chuoi thanh doi tuong
String jsonString = "[{\"76543456\"},"+"{\"112233445\"},"+"{\"546372\"},"+"{\"9876553\"}]";
try{
JSONParser jsonParser = new JSONParser();
JSONArray jsonArray = (JSONArray) jsonParser.parse(jsonString);
for(int i =0;i<jsonArray.size();i++){
JSONObject jsonObject = (JSONObject) jsonArray.get(i);
long l = Long.parseLong((String) jsonObject.get("l"));
jsonArray ja = new jsonArray(l);
System.out.println("Elements is "+ja.getArray());
}
}catch(Exception e){
System.out.println(e.getMessage());
}
}
}
结果为:[{“ 76543456”},{“ 112233445”},{“ 546372”},{“ 9876553”}] null
我不知道解析上述数组。 请帮助我,非常感谢,并度过愉快的时光。
您的JSON无效。 大括号{}
表示包含键值对的JSON对象。 但是您要在其中放入JSON字符串。
[{"76543456"},{"112233445"},{"546372"},{"9876553"}]
也许你本来打算
["76543456","112233445","546372","9876553"]
此处描述JSON格式。
稍后,当您尝试将String
JSONObject
转换为JSONObject
时,还会遇到其他问题。 妥善处理。 如果要存储JSON字符串,则应取回Java String
对象。
JSON是键值数据结构。 例如,JSON对象如下:
{"name" : "John Smith"}
您在此处输入的字符串未遵循JSON的约定,因此该程序无法正常工作
null
输出是由于
}catch(Exception e){
System.out.println(e.getMessage());
});
json无效,因此您收到ParseException
并且此异常没有消息。
如我所见,您想获取JSONObject
的l
属性
long l = Long.parseLong((String) jsonObject.get("l"));
在这种情况下,正确的json将是
String jsonString = "[{\"l\": \"76543456\"},"+"{\"l\": \"112233445\"},"+"{\"l\": \"546372\"},"+"{\"l\": \"9876553\"}]";
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.