Java 将json字符串解析为json数组问题
我的数据来自android中的web服务,如下所示:Java 将json字符串解析为json数组问题,java,android,json,string,Java,Android,Json,String,我的数据来自android中的web服务,如下所示: "[{\"ID\":9617,\"Text\":\"1 1\/4\\\" PVC\/GI CLAMPS\"},{\"ID\":41608,\"Text\":\"100123-Manterial name\"}]" 现在的问题是,我想将这个json数据解析为json数组,但由于字符串中的双引号(“),它给了我错误异常,我尝试手动删除反斜杠。我使用类似这样的代码将其转换为json数组 String line="[{\"ID\":9617,\"T
"[{\"ID\":9617,\"Text\":\"1 1\/4\\\" PVC\/GI CLAMPS\"},{\"ID\":41608,\"Text\":\"100123-Manterial name\"}]"
现在的问题是,我想将这个json数据解析为json数组,但由于字符串中的双引号(“),它给了我错误异常,我尝试手动删除反斜杠。我使用类似这样的代码将其转换为json数组
String line="[{\"ID\":9617,\"Text\":\"1 1\/4\\\" PVC\/GI CLAMPS\"},{\"ID\":41608,\"Text\":\"100123-Manterial name\"}]";
String jsonFormattedString = line.replace("\\\\", "");
jsonFormattedString= jsonFormattedString.substring(1, jsonFormattedString.length()-1) ;
Log.d("Json String--->",jsonFormattedString);
JSONArray j = new JSONArray(jsonFormattedString);//here I get exception cannot covert to json array
JSONObject jsonmain = j.getJSONObject(0);
int lengthJsonArr = j.length();
for(int i=0; i < lengthJsonArr; i++) {
jsonmain = j.getJSONObject(i);
Log.d("Jsonnnnn----",jsonmain.getString("Text"));
Itm=new CItem(jsonmain.getString("ID"),jsonmain.getString("Text"));
lstItm.add(Itm);
}
String line=“[{\'ID\':9617,\'Text\':\'11\/4\\\'PVC\/GI-clips\',{\'ID\':41608,\'Text\':\'100123 Manterial name\'”;
字符串jsonFormattedString=line.replace(“\\\\”,“”);
jsonFormattedString=jsonFormattedString.substring(1,jsonFormattedString.length()-1);
Log.d(“Json字符串-->”,jsonFormattedString);
JSONArray j=新的JSONArray(jsonFormattedString)//这里我得到的异常无法转换为json数组
JSONObject jsonmain=j.getJSONObject(0);
int lengthJsonArr=j.length();
for(int i=0;i
您尝试过这样做吗
String jsonFormattedString = line.replaceAll("\\\\", "");
试试这个方法
public String convertStandardJSONString(String data_json){
data_json = data_json.replace("\\", "");
data_json = data_json.replace("\"{", "{");
data_json = data_json.replace("}\",", "},");
data_json = data_json.replace("}\"", "}");
return data_json;
}
@参考:Cristy YG
public static String convertStandardJSONString(String data_json) {
data_json = data_json.replaceAll("\\\\r\\\\n", "");
data_json = data_json.replace("\"{", "{");
data_json = data_json.replace("}\",", "},");
data_json = data_json.replace("}\"", "}");
return data_json;
}
convertStandardJSONString
)您使用的是replace,而不是replaceAll。我认为您的JSON无效。不,唯一的问题是数据中包含双引号。
字符串应该用双引号括起来。,为什么要转义这些引号?@mubu9082:使用此工具验证JSON Omg,我知道这个问题。您正在创建一个JSONObject
,它已经是一个JSONObject
。因此,请您的php开发人员更改此格式,并尝试创建一个JSONObject
到JSONArray