一开始的json格式是
var str = { {"titletype":"xxxx" ...............} ,{"titletype":"xxxx" ...............},{"titletype":"xxxx" ...............} }
{"titletype":"xxxx" ...............} 每一个这个字符串,都可以解析成一个JSONArray
一整个 str 其实是可以解析成 JSONObject ,两者还是有区别的。
改成 按照题目类型分组,同时json字符串,如果有 \ 符号,可能会报错,解析不了,因此需要转义,或者去掉\。
danxuanti :
{"titletype":"xxxx" ...............} ,{"titletype":"xxxx" ...............}
duoxuanti:
{"titletype":"xxxx" ...............} ,{"titletype":"xxxx" ...............}
System.out.println(resultJson); //一开始只是普通json字符串 //---------------------------在后台将json字符串重新组合, //单选,多选,问答,填空等等----------- String resultStr = new String(resultJson); //这一句很关键,清楚json字符串中的 \ 符号,不然会解析出问题 resultStr = resultStr.replaceAll("\\\\", ""); //后端处理json字符串,搞成按照titletype格式排序展示下来 JSONObject obj = JSONObject.parseObject(resultStr); String ii = obj.getString("titleLists"); JSONArray objj = JSONObject.parseArray(ii); //罗列多道题目的ArrayList值 for(int i=0;i<objj.size();i++){ System.out.println(objj.get(i).toString()); } JSONObject oobj = new JSONObject(); JSONArray jsonArray = new JSONArray(100); int count = 0; for(int i=0;i<objj.size();i++) { JSONObject ob = JSONObject.parseObject(objj.get(i).toString()); if(ob.getString("titletype").equals("单选题")) { jsonArray.add(count++,objj.get(i)); } } oobj.put("danxuan", jsonArray); jsonArray = new JSONArray(100); count = 0; for(int i=0;i<objj.size();i++) { JSONObject ob = JSONObject.parseObject(objj.get(i).toString()); if(ob.getString("titletype").equals("多选题")) { jsonArray.add(count++,objj.get(i)); } } oobj.put("duoxuan",jsonArray); jsonArray = new JSONArray(100); count = 0; for(int i=0;i<objj.size();i++) { JSONObject ob = JSONObject.parseObject(objj.get(i).toString()); if(ob.getString("titletype").equals("问答题")) { jsonArray.add(count++,objj.get(i)); } } oobj.put("wendati",jsonArray); jsonArray = new JSONArray(100); count = 0; for(int i=0;i<objj.size();i++) { JSONObject ob = JSONObject.parseObject(objj.get(i).toString()); if(ob.getString("titletype").equals("判断题")) { jsonArray.add(count++,objj.get(i)); } } oobj.put("panduanti",jsonArray); jsonArray = new JSONArray(100); count = 0; for(int i=0;i<objj.size();i++) { JSONObject ob = JSONObject.parseObject(objj.get(i).toString()); if(ob.getString("titletype").equals("填空题")) { jsonArray.add(count++,objj.get(i)); } } oobj.put("tiankongti",jsonArray); System.out.println(oobj.toJSONString());
拼凑成json对象直接 用属性运算符 . 取数据,可以避免json字段字符串里面有 [] {} 等符号解析出问题,因此优先使用json对象操作,而不是json字符串,会有很大的好处。