[英]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.