javajson格式解析,ajaxjson格式

本文目錄一覽:

java解析json格式文件,再保存在數據庫怎麼做?

java解析json格式文件,再保存在數據庫的方法:

1:定義一個實體類

2:用json lib將json字符串轉為Java對象

3:用jdbc或hibernate將java對象存入數據庫

直接讀寫文件,再把讀出來的文件內容格式化成json,再用JDBC、Mybatis或者其他框架將json數據存入數據庫。

假設實體類是這樣的:

public class ElectSet {

public String xueqi;

public String xuenian;

public String startTime;

public String endTime;

public int menshu;

public String isReadDB;

//{“xueqi”:,”xuenian”:,”startTime”:,”endTime”:,”renshu”:,”isReadDB”:}

public String getXueqi() {

   return xueqi;

}

public void setXueqi(String xueqi) {

   this.xueqi = xueqi;

}

public String getXuenian() {

   return xuenian;

}

public void setXuenian(String xuenian) {

   this.xuenian = xuenian;

}

public String getStartTime() {

   return startTime;

}

public void setStartTime(String startTime) {

   this.startTime = startTime;

}

public String getEndTime() {

   return endTime;

}

public void setEndTime(String endTime) {

   this.endTime = endTime;

}

public int getMenshu() {

   return menshu;

}

public void setMenshu(int menshu) {

   this.menshu = menshu;

}

public String getIsReadDB() {

   return isReadDB;

}

public void setIsReadDB(String isReadDB) {

   this.isReadDB = isReadDB;

}

 

}

有一個json格式的文件,存的信息如下:

Sets.json:

{“xuenian”:”2007-2008″,”xueqi”:”1″,”startTime”:”2009-07-19 08:30″,”endTime”:”2009-07-22 18:00″,”menshu”:”10″,”isReadDB”:”Y”}

具體操作:

/*

* 取出文件內容,填充對象

*/

public ElectSet findElectSet(String path){

   ElectSet electset=new ElectSet();

   String sets=ReadFile(path);//獲得json文件的內容

   JSONObject jo=JSONObject.fromObject(sets);//格式化成json對象

   //System.out.println(“————” jo);

   //String name = jo.getString(“xuenian”);

   //System.out.println(name);

   electset.setXueqi(jo.getString(“xueqi”));

   electset.setXuenian(jo.getString(“xuenian”));

   electset.setStartTime(jo.getString(“startTime”));

   electset.setEndTime(jo.getString(“endTime”));

   electset.setMenshu(jo.getInt(“menshu”));

   electset.setIsReadDB(jo.getString(“isReadDB”));

   return electset;

}

//設置屬性,並保存

public boolean setElect(String path,String sets){

   try {

    writeFile(path,sets);

    return true;

   } catch (IOException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

    return false;

   }

}

//讀文件,返回字符串

public String ReadFile(String path){

    File file = new File(path);

    BufferedReader reader = null;

    String laststr = “”;

    try {

     //System.out.println(“以行為單位讀取文件內容,一次讀一整行:”);

     reader = new BufferedReader(new FileReader(file));

     String tempString = null;

     int line = 1;

     //一次讀入一行,直到讀入null為文件結束

     while ((tempString = reader.readLine()) != null) {

      //顯示行號

      System.out.println(“line ” line “: ” tempString);

      laststr = laststr tempString;

      line ;

     }

     reader.close();

    } catch (IOException e) {

     e.printStackTrace();

    } finally {

     if (reader != null) {

      try {

       reader.close();

      } catch (IOException e1) {

      }

     }

    }

    return laststr;

}

將獲取到的字符串,入庫即可。

java中Json怎樣解析數據?

你這個JSON格式,就是數組裏面放數組,所以是,取JSON對象》取JSON數組data》取JSON數組。

import java.util.ArrayList;import java.util.Iterator;import net.sf.json.*;public class MainClass {/*** @param args*/public static void main(String[] args) {JSONObject jsonObj = JSONObject.fromObject(JsonData.getData());JSONArray jsonArr = jsonObj.getJSONArray(“data”);IteratorJSONArray itr = jsonArr.iterator();JSONArray temp;while(itr.hasNext()) {temp = itr.next();System.out.println(“===========Each JSONArray=========”);for(int i = 0; itemp.size(); i++) {System.out.println(temp.get(i));}}}private static class JsonData {private static String getData() {return “{\”data\”:[[5000235,2,3441,8,17,\”北京測試\”,\”10000101111\”,\”\”,\”\”,\”100001\”,\”\”,\”2011-09-23 17:20:07\”,18,\”vhcDefaultPwd\”,1,0,\”2011-09-20 00:00:00\”,12,0,380,\”測試\”,213,1,0,0,0,0,0,\”2012-11-05 14:35:23\”,\”\”],[5000236,27,3442,10,17,\”北京測試2\”,\”1230000\”,\”\”,\”\”,\”2010920002\”,\”111111\”,\”2011-09-23 17:20:08\”,18,\”vhcDefaultPwd\”,1,0,\”2011-09-20 00:00:00\”,12,0,380,\”測試2\”,213,1,0,0,0,0,0,\”2012-11-05 14:35:23\”,\”\”]]}”;}}}

用java解析json 格式的字符.該如何解析

String temp=”{‘data’:{‘a’:[{‘b1′:’bb1′,’c1′:’cc1’},{‘b2′:’bb2′,’c2′:’cc2’}]}}”;

JSONObject jodata =JSONObject.fromObject(temp);

JSONObject joa =JSONObject.fromObject(jodata.get(“data”).toString());

JSONArray ja=JSONArray.fromObject(joa.get(“a”));

for(int i=0;ija.size();i++){

JSONObject o=ja.getJSONObject(i);

if(o.get(“b1”)!=null){

System.out.println(o.get(“b1”));

}

if(o.get(“c1”)!=null){

System.out.println(o.get(“c1”));

}

if(o.get(“b2”)!=null){

System.out.println(o.get(“b2”));

}

if(o.get(“c2”)!=null){

System.out.println(o.get(“c2”));

}

}

}

註:要包含兩個jar包ezmorph-1.0.6.jar和json-lib-2.2.2-jdk15.jar,jar包在附件中

java 解析json字符串

你好:

後台拆分json

private String interactPrizeAll;    //json 使用字符串來接收

方法中的代碼:

Gson gson = new Gson();

InteractPrize interactPrize =new InteractPrize();

 //gson用泛型 轉List數組 多個對象

ListInteractPrize  interactPrizeList = gson.fromJson(interactPrizeAll, new TypeTokenListInteractPrize(){}.getType()); //TypeToken,它是gson提供的數據類型轉換器,可以支持各種數據集合類型轉換 

for(int i = 0; i  interactPrizeList.size(); i++)  

   {  

    interactPrize = interactPrizeList.get(i);//獲取每一個對象

    }

 這一種方法是轉單個對象時使用的

 //gson 轉對象 單個對象

//interactPrize = gson.fromJso(interactPrizeAll,InteractPrize.class);

這個方法是我後台拼的json往前台傳的方法

jsonStrAll.append(“{“+ “\””+”catid”+”\””+”:”+”\””+c.getCatid()+”\””+”,”+”\””+”catname”+”\””+”:”+”\””+c.getCatname()+”\””+”,”+ “\””+”catdesc”+”\””+”:”+”\””+c.getCatdesc()+”\””+”,”+”\””+”showinnav”+”\””+”:”+”\””+c.getShowinnav()+”\””+”,”+”\””+”sortorder”+”\””+”:”+”\””+c.getSortorder()+”\””+”,”+”level:”+”\””+”0″+”\””+”,parent:”+”\””+”0″+”\””+”,isLeaf:true,expanded:false,”+”loaded:true},”);

你自己挑着用吧!

java解析json格式文件

/*簡單的回了複雜的也就會了*/

/*其實,json實際上是用來統一數據格式,所以,在使用它時,肯定要設計一下格式,

當然,所謂的複雜,只是嵌套的層次深了。。。解析方式並沒有變。。個人理解,如果覺得有價值就看,沒價值,就當沒看見吧。。

呵呵。。

*/

import java.util.ArrayList;

import java.util.HashMap;

import java.util.Iterator;

import java.util.Map;

import net.sf.ezmorph.bean.MorphDynaBean;

import net.sf.json.JSONArray;

import net.sf.json.JSONSerializer;

/**

* @author John

*

*/

public class JSONDemo {

public static final String PREFIX = “index_”;

/**

* @param args

*/

public static void main(String[] args) {

Map map = new HashMap();

String str =”[{‘status’: 5,’remarks’: ‘\\xe6\\xa3\\x80\\xe6\\xb5\\x8b\\xe5\\xb7\\xb2\\xe7\\xbb\\x8f\\xe5\\xae\\x8c\\xe6\\x88\\x90′,’session’: \”(1, ‘9.2.0.1.0’, ‘192.168.177.115’, 1521L, ‘ora9′, 1, ”)\”,’vuls’: [\”(‘612300200001’, 1, ”, [{‘values’: ‘[‘version’]’, ‘type’: 0}, {‘values’: \'[‘%E7%89%88%E6%9C%AC%E5%8F%B7′]\’, ‘type’: 1}])\”,\”(‘612300200002’, 1, ”, [{‘values’: ‘[‘version’]’, ‘type’: 0},{‘values’: ‘[‘%E7%89%88%E6%9C%AC%E5%8F%B7′]’, ‘type’: 1},{‘values’: ‘[‘9.2.0.1.0′]’, ‘type’: 2}])\”], ‘endTime’:123}, 1L, ‘\\xe6\\xb5\\x8b\\xe8\\xaf\\x95\\xe6\\x89\\xab\\xe6\\x8f\\x8f\\xe4\\xbb\\xbb\\xe5\\x8a\\xa1’]”;

System.out.println(“json格式字符串–“+str);

JSONArray array = JSONArray.fromObject(str);

System.out.println(“json格式字符串構造json數組元素的個數–“+array.size());

ArrayList list = (ArrayList) JSONSerializer.toJava(array);

int i = 0;

for (Object obj : list) {

map.put(PREFIX+(i++), obj);

System.out.println(“第”+i+”對象–“+obj);

}

//解析第0個位置

Map bd = new HashMap();

MorphDynaBean bean = (MorphDynaBean) map.get(PREFIX+0);

bd.put(“session”, bean.get(“session”));

bd.put(“status”, bean.get(“status”));

bd.put(“remarks”, bean.get(“remarks”));

bd.put(“vuls”, bean.get(“vuls”));

bd.put(“endTime”, bean.get(“endTime”));

Iterator iter = bd.keySet().iterator();

while (iter.hasNext()){

Object key = iter.next();

Object value = bd.get(key);

System.out.println(“MorphDynaBean對象–key=”+key+”,value=”+value);

}

//解析vuls

ArrayList vuls = (ArrayList) bd.get(“vuls”);

Map vl = new HashMap();

int j = 0;

for (Object obj : vuls) {

vl.put(PREFIX+(j++), obj);

System.out.println(“解析vuls的第”+i+”對象–“+obj);

}

}

}

/*

* json格式字符串–[{‘status’: 5,’remarks’: ‘\xe6\xa3\x80\xe6\xb5\x8b\xe5\xb7\xb2\xe7\xbb\x8f\xe5\xae\x8c\xe6\x88\x90′,’session’: “(1, ‘9.2.0.1.0’, ‘192.168.177.115’, 1521L, ‘ora9′, 1, ”)”,’vuls’: [“(‘612300200001’, 1, ”, [{‘values’: ‘[‘version’]’, ‘type’: 0}, {‘values’: ‘[‘%E7%89%88%E6%9C%AC%E5%8F%B7′]’, ‘type’: 1}])”,”(‘612300200002’, 1, ”, [{‘values’: ‘[‘version’]’, ‘type’: 0},{‘values’: ‘[‘%E7%89%88%E6%9C%AC%E5%8F%B7′]’, ‘type’: 1},{‘values’: ‘[‘9.2.0.1.0′]’, ‘type’: 2}])”], ‘endTime’:123}, 1L, ‘\xe6\xb5\x8b\xe8\xaf\x95\xe6\x89\xab\xe6\x8f\x8f\xe4\xbb\xbb\xe5\x8a\xa1’]

json格式字符串構造json數組元素的個數–3

第1對象–net.sf.ezmorph.bean.MorphDynaBean@94948a[

{session=(1, ‘9.2.0.1.0’, ‘192.168.177.115’, 1521L, ‘ora9’, 1, ”), status=5, remarks=???????·??????????, vuls=[(‘612300200001’, 1, ”, [{‘values’: ‘[‘version’]’, ‘type’: 0}, {‘values’: ‘[‘%E7%89%88%E6%9C%AC%E5%8F%B7′]’, ‘type’: 1}]), (‘612300200002’, 1, ”, [{‘values’: ‘[‘version’]’, ‘type’: 0},{‘values’: ‘[‘%E7%89%88%E6%9C%AC%E5%8F%B7′]’, ‘type’: 1},{‘values’: ‘[‘9.2.0.1.0′]’, ‘type’: 2}])], endTime=123}

]

第2對象–1L

第3對象–???è??????????????

MorphDynaBean對象–key=status,value=5

MorphDynaBean對象–key=session,value=(1, ‘9.2.0.1.0’, ‘192.168.177.115’, 1521L, ‘ora9’, 1, ”)

MorphDynaBean對象–key=remarks,value=???????·??????????

MorphDynaBean對象–key=vuls,value=[(‘612300200001’, 1, ”, [{‘values’: ‘[‘version’]’, ‘type’: 0}, {‘values’: ‘[‘%E7%89%88%E6%9C%AC%E5%8F%B7′]’, ‘type’: 1}]), (‘612300200002’, 1, ”, [{‘values’: ‘[‘version’]’, ‘type’: 0},{‘values’: ‘[‘%E7%89%88%E6%9C%AC%E5%8F%B7′]’, ‘type’: 1},{‘values’: ‘[‘9.2.0.1.0′]’, ‘type’: 2}])]

MorphDynaBean對象–key=endTime,value=123

解析vuls的第3對象–(‘612300200001’, 1, ”, [{‘values’: ‘[‘version’]’, ‘type’: 0}, {‘values’: ‘[‘%E7%89%88%E6%9C%AC%E5%8F%B7′]’, ‘type’: 1}])

解析vuls的第3對象–(‘612300200002’, 1, ”, [{‘values’: ‘[‘version’]’, ‘type’: 0},{‘values’: ‘[‘%E7%89%88%E6%9C%AC%E5%8F%B7′]’, ‘type’: 1},{‘values’: ‘[‘9.2.0.1.0′]’, ‘type’: 2}])

*/

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/297849.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-28 12:16
下一篇 2024-12-28 12:16

相關推薦

  • 如何在Java中拼接OBJ格式的文件並生成完整的圖像

    OBJ格式是一種用於表示3D對象的標準格式,通常由一組頂點、面和紋理映射坐標組成。在本文中,我們將討論如何將多個OBJ文件拼接在一起,生成一個完整的3D模型。 一、讀取OBJ文件 …

    編程 2025-04-29
  • 如何將視頻導出成更小的格式給IT前端文件

    本文將從以下幾個方面介紹如何將視頻導出成更小的格式,以便於在IT前端文件中使用。 一、選擇更小的視頻格式 在選擇視頻格式時,應該儘可能選擇更小的格式,如MP4、WebM、FLV等。…

    編程 2025-04-28
  • JavaScript中使用new Date轉換為YYYYMMDD格式

    在JavaScript中,我們通常會使用Date對象來表示日期和時間。當我們需要在網站上顯示日期時,很多情況下需要將Date對象轉換成YYYYMMDD格式的字符串。下面我們來詳細了…

    編程 2025-04-27
  • fastq格式的詳細闡述

    一、fastq格式簡介 Fastq格式是廣泛用於存儲高通量測序數據的格式之一,它包含測序reads的序列信息和其對應的質量信息。Fastq格式主要包含4行信息:第1行為reads的…

    編程 2025-04-25
  • JavaJson格式化詳解

    一、Json序列化 Json序列化是指將一個Java對象轉化為Json字符串的過程。Json字符串是一種輕量級的數據交換格式,常用於客戶端與服務端之間數據傳輸。 Java提供了多個…

    編程 2025-04-24
  • Java導出Excel設置單元格格式詳解

    一、基礎概念 Excel是一種常用的表格處理工具,而Java可以通過一些開源庫(如Apache POI)來實現對Excel的操作,包括導出、導入、修改等。在Excel中,單元格格式…

    編程 2025-04-24
  • 深度剖析Linux硬盤格式

    一、MBR分區格式 MBR分區格式是硬盤上最常用的分區格式之一。它是由硬盤的主引導記錄(Master Boot Record)所組成,佔用了磁盤的頭512個位元組,其中包含磁盤分區表…

    編程 2025-04-24
  • SQL解析JSON格式字段

    一、JSON格式簡介 JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式,具有良好的可讀性和可擴展性,被廣泛應用於網絡數據傳輸中。它採用鍵…

    編程 2025-04-23
  • 如何正確校驗Java日期格式?

    Java中對日期的處理是非常重要的,但是在處理日期時,有時候會遇到格式不正確的問題,為了保證程序的正確性,需要對日期格式進行校驗。本文將從多個方面介紹如何正確校驗Java日期格式。…

    編程 2025-04-23
  • EndNote國標7714格式

    一、背景介紹 EndNote是一款知名的文獻管理工具,旨在幫助用戶輕鬆管理各類文獻,包括書籍、期刊、論文等。EndNote支持多種文獻引用格式,其中國標7714格式是用戶使用最多的…

    編程 2025-04-23

發表回復

登錄後才能評論