JLANGLU 2016-08-24 05:25 采纳率: 0%
浏览 5499
已结题

解析json数据,存入数据库

关于json解析存入数据库中的程序

json数据是台风数据,内容从url中获取,这是其中一条:
[{"tfbh":"201611","name":"圆规","ename":"Kompasu","is_current":0,"begin_time":"2016-08-20T08:00:00","end_time":"2016-08-21T14:00:00","land":[]},{"tfbh":"201610","name":"狮子山","ename":"Lionrock","is_current":1,"begin_time":"2016-08-19T20:00:00","end_time":"2016-08-24T08:00:00","land":[]},{"tfbh":"201609","name":"蒲公英","ename":"Mindulle","is_current":0,"begin_time":"2016-08-19T14:00:00","end_time":"2016-08-23T02:00:00","land":[]},{"tfbh":"201608","name":"电母","ename":"Dianmu","is_current":0,"begin_time":"2016-08-18T05:00:00","end_time":"2016-08-19T23:00:00","land":[]},{"tfbh":"201607","name":"灿都","ename":"Chanthu","is_current":0,"begin_time":"2016-08-14T02:00:00","end_time":"2016-08-17T17:00:00","land":[]},{"tfbh":"201606","name":"康森","ename":"Conson","is_current":0,"begin_time":"2016-08-09T08:00:00","end_time":"2016-08-13T14:00:00","land":[]},{"tfbh":"201605","name":"奥麦斯","ename":"Omais","is_current":0,"begin_time":"2016-08-04T14:00:00","end_time":"2016-08-09T20:00:00","land":[]},{"tfbh":"201604","name":"妮妲","ename":"Nida","is_current":0,"begin_time":"2016-07-30T17:00:00","end_time":"2016-08-03T05:00:00","land":[]},{"tfbh":"201603","name":"银河","ename":"Mirinae","is_current":0,"begin_time":"2016-07-26T11:00:00","end_time":"2016-07-28T11:00:00","land":[]},{"tfbh":"201602","name":"卢碧","ename":"Lupit","is_current":0,"begin_time":"2016-07-24T02:00:00","end_time":"2016-07-25T02:00:00","land":[]},{"tfbh":"201601","name":"尼伯特","ename":"Nepartak","is_current":0,"begin_time":"2016-07-03T08:00:00","end_time":"2016-07-10T11:00:00","land":[]}]
要求是解析出数据,插入数据表里,属性有 tfbh(主键),name,ename,begin_time,"is_current",等我是菜鸟,求大神帮忙解答。package service;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import dao.TaiFengInfoDao;
import pao.TaiFengInfo;
import net.sf.json.JSONArray;

import net.sf.json.JSONException;

import net.sf.json.JSONObject;

public class getTaifengInfo {
public getTaifengInfo() {}
private static getTaifengInfo dao = new getTaifengInfo();
public static getTaifengInfo getInstance() {
return dao;
}
private static String loadJson (String url) {

StringBuilder json = new StringBuilder();

try {

URL urlObject = new URL(url);

URLConnection uc = urlObject.openConnection();

BufferedReader in = new BufferedReader(new InputStreamReader(uc.getInputStream()));

String inputLine = null;

while ( (inputLine = in.readLine()) != null) {

json.append(inputLine);

}

in.close();

} catch (MalformedURLException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

return json.toString();

}
/* public static TaiFengInfo jiexitaifengInfo(String str){

    TaiFengInfoDao tdao = new TaiFengInfoDao();
    JSONObject dataOfJson = JSONObject.fromObject(str);

// String begin_time = dataOfJson.getString("begin_time");
// String end_time = dataOfJson.getString("end_time");
String tfbh=dataOfJson.getString("tfbh");
String name=dataOfJson.getString("name");
String ename=dataOfJson.getString("ename");
int is_current=dataOfJson.getInt("is_current");
String land=dataOfJson.getString("land");
TaiFengInfo info=new TaiFengInfo();
info.setTfbh(tfbh);
// info.setBegin_time(begin_time);
info.setEname(ename);
info.setName(name);
// info.setEnd_time(end_time);
info.setIs_current(is_current);
info.setLand(land);
tdao.addtaifenglist(info);
return info;

}*/

/*private static String[] getStringArray4Json(String jsonString){  

    JSONArray jsonArray = JSONArray.fromObject(jsonString);  
    String[] stringArray = new String[jsonArray.size()];  
    for( int i = 0 ; i<jsonArray.size() ; i++ ){  
        stringArray[i] = jsonArray.getString(i);  

    }  

    return stringArray;  
}  
*/
/**
 * @param args
 */

public static   TaiFengInfo jiexitaifengInfo1(String str){
    TaiFengInfoDao tdao = new TaiFengInfoDao();

    String strj="{"+"results:"+str;
    JSONObject dataOfJson = JSONObject.fromObject(str);
     JSONArray results=dataOfJson.getJSONArray("results");  
     for(int i=0;i<results.size();i++){

         JSONObject Jinfo=results.getJSONObject(i);
         TaiFengInfo info=new TaiFengInfo();

     }  



    return null;

}
public static void main(String[] args) {  
    String url = "http://www.wztf121.com/data/complex/path.json?rand=7428111";  

// String url = "http://www.kuaidi100.com/query?type=yunda&postid=1201386764793";

String json = loadJson(url);

System.out.println(json);
String str="{"+json+"}";
System.out.println(str);
// jiexitaifengInfo(str);

    /* String[] stringArray=getStringArray4Json(json);
     System.out.println(stringArray[0]);*/

}  

}



  • 写回答

7条回答 默认 最新

  • 雪无殇 2016-08-24 06:05
    关注

    public static void main(String[] args) {

    String string="[{'tfbh':'201611','name':'圆规','ename':'Kompasu','is_current':0,'begin_time':'2016-08-20T08:00:00','end_time':'2016-08-21T14:00:00','land':[]}," +
    "{'tfbh':'201610','name':'狮子山','ename':'Lionrock','is_current':1,'begin_time':'2016-08-19T20:00:00','end_time':'2016-08-24T08:00:00','land':[]}," +
    "{'tfbh':'201609','name':'蒲公英','ename':'Mindulle','is_current':0,'begin_time':'2016-08-19T14:00:00','end_time':'2016-08-23T02:00:00','land':[]}," +
    "{'tfbh':'201608','name':'电母','ename':'Dianmu','is_current':0,'begin_time':'2016-08-18T05:00:00','end_time':'2016-08-19T23:00:00','land':[]}," +
    "{'tfbh':'201607','name':'灿都','ename':'Chanthu','is_current':0,'begin_time':'2016-08-14T02:00:00','end_time':'2016-08-17T17:00:00','land':[]}," +
    "{'tfbh':'201606','name':'康森','ename':'Conson','is_current':0,'begin_time':'2016-08-09T08:00:00','end_time':'2016-08-13T14:00:00','land':[]}," +
    "{'tfbh':'201605','name':'奥麦斯','ename':'Omais','is_current':0,'begin_time':'2016-08-04T14:00:00','end_time':'2016-08-09T20:00:00','land':[]}," +
    "{'tfbh':'201604','name':'妮妲','ename':'Nida','is_current':0,'begin_time':'2016-07-30T17:00:00','end_time':'2016-08-03T05:00:00','land':[]}," +
    "{'tfbh':'201603','name':'银河','ename':'Mirinae','is_current':0,'begin_time':'2016-07-26T11:00:00','end_time':'2016-07-28T11:00:00','land':[]}," +
    "{'tfbh':'201602','name':'卢碧','ename':'Lupit','is_current':0,'begin_time':'2016-07-24T02:00:00','end_time':'2016-07-25T02:00:00','land':[]}," +
    "{'tfbh':'201601','name':'尼伯特','ename':'Nepartak','is_current':0,'begin_time':'2016-07-03T08:00:00','end_time':'2016-07-10T11:00:00','land':[]}]";

    try {
    JSONArray array = new JSONArray(string);
    System.out.println(array.length());
    for (int i = 0; i < array.length(); i++) {

    JSONObject jsonObj = array.getJSONObject(i);
    System.out.println(jsonObj.get("tfbh"));
    System.out.println(jsonObj.get("name"));
    System.out.println(jsonObj.get("ename"));
    System.out.println(jsonObj.get("is_current"));
    System.out.println(jsonObj.get("begin_time"));
    System.out.println(jsonObj.get("end_time"));
    System.out.println(jsonObj.get("land"));
    //用一个实体类接收下,然后保存到数据库里
    }
    } catch (JSONException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }

    }
    
    
        JSONObject会报json要以"{"开头的错误
    
    评论

报告相同问题?

悬赏问题

  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的
  • ¥15 r语言蛋白组学相关问题
  • ¥15 Python时间序列如何拟合疏系数模型