【发布时间】:2021-07-24 04:04:03
【问题描述】:
这是我尝试解析并尝试获取单独字符串中的值的响应,
response =
"Data1{
key1='4722**********6',
key2='2107',
key3=value{
value1='226',
value2=passed,
value3=tracked,
value4=noted
},
isChecked=true
}"
但无法解析响应,比如
String Datas = "Data1{key1='4722**********6', key2='2107', key3=value{value1='226',
value2=passed,value3=tracked, value4=noted}, isChecked=true}";
String data = Datas.substring(5);
//String data1 = data.replaceAll("\"", "");
try {
JSONObject dataObject = new JSONObject((data)); //JsonObject
String strKey1= dataObject.getString("key1");
String strKey2= dataObject.getString("key2");
String strKey3= dataObject.getString("key3");
JSONObject strValueObj = new JSONObject(strKey3);
String strValue1= strValueObj.getString("value1");
String strValue2= strValueObj.getString("value2");
String strValue3= strValueObj.getString("value3");
String strValue4= strValueObj.getString("value4");
正常的字符串解析是否有效,或者使用 JSON 解析是否正确?谁能帮我解析字符串响应。
【问题讨论】:
-
数据字符串不是 JSON 格式,因为键和值不是双引号。因此,要解析它,您需要构建自己的解析器,因为这不是有效的 JSON 字符串。
-
是的,它不是有效的 JSON 字符串,响应来自硬件,无法更改格式。那我该如何解析,有没有其他的解决方案?
-
添加您想要将其转换为 json 的确切响应,我可以编写代码来更改它,它是关于键而不是值。你当然可以自己做。代码是这样的:String json = Datas.replaceAll("=", "\":");
-
这是确切的响应,“Data1{key1='4722**********6', key2='2107', key3=Key3{value1='226', value2=passed,value3=tracked, value4=noted}, isChecked=true}"
标签: java android json string parsing