我从DB收到以下字符串。
{
"MyDetails": {
"Type1": "A",
"Type2": "B",
"Type3": "C",
"Type4": "D",
"Type5": "E",
"Type6": "F",
"Date1": "2000-02-11"
}
}
我已经创建了解析JSON字符串的语法,但是上面的格式给了我一个错误字符串,我无法构造一个字符串。
JSONObject obj = new JSONObject("{MYDETAILS:{TYPE: A,CLASS: B}}");
System.out.println(obj);
JSONObject array = obj.getJSONObject("MYDETAILS");
System.out.println(array);
for (int i = 0; i < array.length(); i++) {
System.out.println(array.getString("CLASS"));
}
如何将数据库中的字符串转换为Java中的有效字符串?
我想这应该给我答案。
问题在于从DB收到的字符串数据,并且无法转换为字符串。
如何动态删除引号以便我可以形成有效的字符串?
答案 0 :(得分:2)
解析此JSON
{
"MyDetails": {
"Type1": "A",
"Type2": "B",
"Type3": "C",
"Type4": "D",
"Type5": "E",
"Type6": "F",
"Date1": "2000-02-11"
}
}
你会用这样的东西:
JSONObject root = ...;
JSONObject details = (JSONObject) root.get("MyDetails");
String type1 = (String) details.get("Type1");
String type2 = (String) details.get("Type2");
// and so on
答案 1 :(得分:0)
基本上你对JSON编码感到困惑,你拥有的这个字符串是MyDetails对象的一个实例,你可以像这样解析它:
JSONObject ob = obj.getJSONObject("MYDETAILS");
System.out.println(ob.getString("CLASS"));
如果MyDetails实际上是一个数组,那么JSON将使用这样的方括号:
{"MyDetails": [
{ "CLASS": "A" },
{ "CLASS": "B"},
]}
在这种情况下,您的代码将是:
JSONArray array = obj.getJSONArray("MYDETAILS");
System.out.println(array);
for (int i = 0; i < array.length(); i++) {
System.out.println(array.get(i).getString("CLASS"));
}
希望你现在可以看到差异。