JSON格式:
{
"xsm":[
{"1111","11111","111","20100101","11:00:00","20100220","0",
"cgts":[{"1111","10","2","28","30"},{"1111","10","2","28","30"}]},
{"2222","2222","222","20100210","22:00:00","20100220","0",
"cgts":[{"2222","10","2","28","30"},{"2222","10","2","28","30"}]}
]
}说明:json为多个头行表的数据,例子中对应数据库中的两条记录。
第一条记录为
{"1111","11111","222","20100210","20:00:00","20100220","0",
"cgts":[{"1111","10","2","28","30"},{"1111","10","2","28","30"}]},
其中
{"1111","11111","222","20100210","20:00:00","20100220","0",为头信息
"cgts":[{"1111","10","2","28","30"},{"1111","10","2","28","30"}]},为行信息(两行,每个大括号中的内容对应一条行记录)第二条记录为
{"2222","2222","222","20100210","22:00:00","20100220","0",
"cgts":[{"2222","10","2","28","30"},{"2222","10","2","28","30"}]}
其中
{"2222","2222","222","20100210","22:00:00","20100220","0",为头信息
"cgts":[{"2222","10","2","28","30"},{"2222","10","2","28","30"}]}为行信息(两行,每个大括号中的内容对应一条行记录)请问如何用java解析多条记录,以便插入数据库中。请高人解答,非常感谢!

解决方案 »

  1.   

    //jsonCarList是JSON格式字符串
    JSONArray jsonarray = JSONArray.fromObject(jsonCarList);
    List list = jsonarray.toList(jsonarray);
      

  2.   

    if (isList) {
    /**
     * 当为数组时
     */
    List l = new ArrayList();
    ParameterizedType t = (ParameterizedType) f
    .getGenericType();
    Type[] ts = t.getActualTypeArguments();
    isExist = isExist(f.getType());
    JSONArray ja = JSONArray.fromObject((jo.get(f
    .getName())).toString());
    for (int i = 0; i < ja.size(); i++) {
    String js = ja.getString(i);
    Object ooo = jsonStringToJava(js, (Class) ts[0]);
    l.add(ooo);
    }
    m.invoke(oo, l);
    只是我项目中的一段解析LIST的代码  
      

  3.   


    用这种方式可以啊~~ 下个JSON依耐包就可以使用呢。。
      

  4.   

    StringBuffer sb1=new StringBuffer();
    sb1.append("[");
    sb1.append("{\"HA1\":\"aaaa\",\"HA2\":\"bbbbb\",");
    sb1.append(" \"cgts\":[{\"La1\":\"a111\"},{\"La2\":\"a222\"}]}");
    sb1.append(",{\"HB1\":\"2222\",\"HB2\":\"2222\",");
    sb1.append(" \"cgts\":[{\"Lb1\":\"b111\"},{\"Lb2\":\"b222\"}]}");
    sb1.append("]");
    String jsonStr=sb1.toString();
    JSONArray array = JSONArray.fromObject(jsonStr); 
        System.out.println(array.toString());
    for(Iterator iter = array.iterator(); iter.hasNext();){  
    JSONObject jsonObject = (JSONObject)iter.next();
    System.out.println(jsonObject.toString());
    }输出结果如下:(下述第一行和第二行输出时在同一行)
    [{"HA1":"aaaa","HA2":"bbbbb","cgts":[{"La1":"a111"},{"La2":"a222"}]},{"HB1":"2222","HB2":"2222","cgts":[{"Lb1":"b111"},{"Lb2":"b222"}]}]
    {"HA1":"aaaa","HA2":"bbbbb","cgts":[{"La1":"a111"},{"La2":"a222"}]}
    {"HB1":"2222","HB2":"2222","cgts":[{"Lb1":"b111"},{"Lb2":"b222"}]}请问如何对
    {"HA1":"aaaa","HA2":"bbbbb","cgts":[{"La1":"a111"},{"La2":"a222"}]}进行处理,以获取头行数据:头:"HA1":"aaaa","HA2":"bbbbb","
    行:共两行(此处以一行一个字段为例子,实际实用中一行有多个字段)
    "La1":"a111"
    "La2":"a222"
      

  5.   

    麻烦各位帮我解答下5楼我提出的问题:
    请问如何对 
    {"HA1":"aaaa","HA2":"bbbbb","cgts":[{"La1":"a111"},{"La2":"a222"}]}进行处理,以获取头行数据:
    头:"HA1":"aaaa","HA2":"bbbbb"," 
    行:共两行(此处以一行一个字段为例子,实际实用中一行有多个字段) 
    "La1":"a111" 
    "La2":"a222"