java解析json(java解析json格式的文件)
本篇文章给大家谈谈java解析json,以及java解析json格式的文件对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、java 解析json字符串
- 2、java怎么使用gson解析json字符串
- 3、java 解析json有几种方式
- 4、java解析json格式文件,再保存在数据库怎么做?
- 5、java后台解析json字符串
- 6、如何java解析json数组
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怎么使用gson解析json字符串
Gson是谷歌推出的解析json数据以模野茄及将对象转换成json数据的一个开源框架. 现在json因其易读性和高效率而被广泛的使用着.
相对于java以及其它json的解析框架,Gson非常的好用.
简单来讲就是根据json的数据结构定义出相应的javabean ---"new"出Gson的实例gson----gson.fromJson(jsonString,JavaBean.class) 即可.
下面给出一个实例来说明.
步骤1:目标:将从webservice传回的json
{
"status": 0,
"result": {
"location": {
"lng": 103.98964143811,
"lat": 30.586643130352
},
"formatted_address": "四川省成都市双流县北一街154",
"business": "簇桥,金花桥",
"addressComponent": {
"city": "成都市",
"district"旦察: "双流县",
"province": "四川省",
"street": "北一街",
"street_number": "154"
},
"cityCode": 75
}
}
先普及下json数据格式定义: json数据只有两种格式.
一种是对象: 一个大括号包裹的内容就是一个对象.里面是无数个逗号相间隔的键值对
{ "firstName": "Brett", "lastName":"McLaughlin", "email": "aaaa" }
一种是数组:一个方括号包裹的内容就是一个数组,里面是无数个逗号相间隔的json对象
如:
{
"people": [
{
"firstName": "Brett",
脊腔 "lastName": "McLaughlin",
"email": "aaaa"
},
{
"firstName": "Jason",
"lastName": "Hunter",
"email": "bbbb"
},
{
"firstName": "Elliotte",
"lastName": "Harold",
"email": "cccc"
}
]
}
步骤2 定义json数据格式对应的javaBean
public class Result {
private Integerstatus;
private ResultDetailresult;
public Result() {
}
public Result(Integer status, ResultDetail result) {
super();
this.status = status;
this.result = result;
}
public ResultDetail getResult() {
return this.result;
}
public Integer getStatus() {
return this.status;
}
public void setResult( ResultDetail result ) {
this.result = result;
}
public void setStatus( Integer status ) {
this.status = status;
}
@Override
public String toString() {
return "Result [status=" + this.status + ", result=" + this.result
+ "]";
}
}
public class ResultDetail {
Locationlocation;
Stringformatted_address;
AddressComponentaddressComponent;
Stringbusiness;
StringcityCode;
public ResultDetail() {
super();
// TODO Auto-generated constructor stub
}
public ResultDetail(Location location, String formatted_address,
AddressComponent addressComponent, String business, String cityCode) {
super();
this.location = location;
this.formatted_address = formatted_address;
this.addressComponent = addressComponent;
this.business = business;
this.cityCode = cityCode;
}
public AddressComponent getAddressComponent() {
return this.addressComponent;
}
public String getBusiness() {
return this.business;
}
public String getCityCode() {
return this.cityCode;
}
public String getFormatted_address() {
return this.formatted_address;
}
public Location getLocation() {
return this.location;
}
public void setAddressComponent( AddressComponent addressComponent ) {
this.addressComponent = addressComponent;
}
public void setBusiness( String business ) {
this.business = business;
}
public void setCityCode( String cityCode ) {
this.cityCode = cityCode;
}
public void setFormatted_address( String formatted_address ) {
this.formatted_address = formatted_address;
}
public void setLocation( Location location ) {
this.location = location;
}
}
public class Location {
Stringlng;
Stringlat;
public Location() {
}
public Location(String lng, String lat) {
this.lng = lng;
this.lat = lat;
}
public String getLat() {
return this.lat;
}
public String getLng() {
return this.lng;
}
public void setLat( String lat ) {
this.lat = lat;
}
public void setLng( String lng ) {
this.lng = lng;
}
@Override
public String toString() {
return "Location [lng=" + this.lng + ", lat=" + this.lat + "]";
}
}
public class AddressComponent {
Stringcity;
Stringdistrict;
Stringprovince;
Stringstreet;
Stringstreet_number;
public AddressComponent() {
super();
// TODO Auto-generated constructor stub
}
public AddressComponent(String city, String district, String province,
String street, String street_number) {
super();
this.city = city;
this.district = district;
this.province = province;
this.street = street;
this.street_number = street_number;
}
public String getCity() {
return this.city;
}
public String getDistrict() {
return this.district;
}
public String getProvince() {
return this.province;
}
public String getStreet() {
return this.street;
}
public String getStreet_number() {
return this.street_number;
}
public void setCity( String city ) {
this.city = city;
}
public void setDistrict( String district ) {
this.district = district;
}
public void setProvince( String province ) {
this.province = province;
}
public void setStreet( String street ) {
this.street = street;
}
public void setStreet_number( String street_number ) {
this.street_number = street_number;
}
@Override
public String toString() {
return "AddressComponent [city=" + this.city + ", district="
+ this.district + ", province=" + this.province + ", street="
+ this.street + ", street_number=" + this.street_number + "]";
}
}
测试:
jsonString ( 目标json数据,已经在最上面写好的)
System.out.println( "jsonString:" + jsonString );
Gson gson = new Gson();
Result fromJson = gson.fromJson( jsonString.toString() ,Result.class );
System.out.println( "******************************************" );
System.out.println( fromJson );
结果:
jsonString:{"status":0,"result":{"location":{"lng":103.98964143811,"lat":30.586643130352},"formatted_address":"四川省成都市双流县北一街154","business":"簇桥,金花桥","addressComponent":{"city":"成都市","district":"双流县","province":"四川省","street":"北一街","street_number":"154"},"cityCode":75}}
*******************************************
Result [status=0, result=ResultDetail [location=Location [lng=103.98964143811, lat=30.586643130352], formatted_address=四川省成都市双流县北一街154, addressComponent=AddressComponent [city=成都市, district=双流县, province=四川省, street=北一街, street_number=154], business=簇桥,金花桥, cityCode=75]]
可见,jsonString已经成功的被转换成了对应的javaBean
步骤3 : 总结.说明
Gson可以很轻松的实现javaBean和jsonString之间的互转.只需要明白json如何定义.剩下的就非常简单了.
[img]java 解析json有几种方式
JSONObject json = new JSONObject();
这个是喊亩java中获取早梁json用的类。
使用它的get和put就能操作json的陆渗运
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字符串
JSONArray 是json数据格式,它下边包含了没圆jsonObject格式,所以你应该先取jsonObject,扮察裂如:
for(int z = 0; z leng; z++){
System.out.println("zzzz"+z);
JSONObject json = jsona.getJSONObject(z);
String name = json.get("name").toString;
}
你的jsonarray格式要是正确的话就应该厅闭可以拿到name值。
如何java解析json数组
工具/原料
安装有eclipse软件的电脑一台
方法/步骤
1
首先我们在eclipse中创建一个java工程,在java工程中创建一个HelloWorld的类,在这个java的入口程序中,我们来创建一个json字符串,并且打印出来,如下图:
2
将我们刚刚创建的json字符串打印出来如下所示,可以看出这个json包含了一个大json对象,大json对象里面又包含一个json数组,一个数组里面又包含三个json对象,如下图:
3
在java中我们要解析json数组必须借助第三方包,所以这里我们加载一下第三方包,首先我们将鼠标移动到项目名称上面去,然后右键召唤出右键快捷菜单,然后依次点击Build Path-Configure Build Paht...,如下图:
4
然后我们按照图中红色方框所示点击Libraries,然后点击Add Library...,如下图所示:
5
然后我裤陆携做们继续按照图中所示点击User Library,然后点击Next,如下图:
6
然后我们继续按照图中红色方框所示点击User Libraries...,如下图:
7
然后我们点击New...,来开始创建我们自己的libraries,如下图:
8
然后我们输入我们自己jar库的名字,这里我使用了jsonjar作为我们的名字,如下图:
9
接下来为我们的jar库添加jar包,我们按照下图中红色方框所示点击“Add External JARs”,如下图:
10
我们添加json相关的jar包,这里涉及json的第三方包主要包括这七个,所以我们把这七个包都引入到我们自己的jar库中去,如下图:
11
返回到User Libraries中发现,我们已经引入了所有的jar包,如下图:
我们按照下图中红色方框所示画勾,然后点击finish,如下图:
然后我们按照图中红色边框所示点击Apply,然后点击OK,如下图:
回到我们的工程中,从工程目录中我们可以看到,我们已经添加了自己的名字为jsonjar的jar库,如下图:
接下来我们回到程序中,在头部添加“import net.sf.json.JSONArray;import net.sf.json.JSONObject;”这两句代码,这两句表示引入了解析json的对象和数组的包,如下图:
然后我们通过代码“JSONObject.fromObject(json_array)”来将我们之前创建的json字符串转换成json对象,并且通过键值对的方式打印出json对象名字为“employees”的值,如下图:
打印出的名字为“employees”的json对象的值如下图是一个数组字符串,如下图:
接下来我们通过代码“jsonobj.getJSONArray("employees")”来将获取的数组字符串转变成为json组数,如下图:
并且我们打印出json数组的长度,可见程序计算的json数组的长度和我们实际的数组长度相一致,如下图:
接下来我们通过一个for循环将我们获取的json数组中的值依次胡隐顷取出来,由于数组中又包含3个对象,我们又需要将3个对象使用代码“JSONObject.fromObject(jsonarr.get(i));”将得到的对象字符串变成对象然后再取出来,如下图:
最后,我们将json数组的所有内容都展示到控制台,这样我们就可以使用java通过第三方json包来解析json数组了,如下图:
关于java解析json和java解析json格式的文件的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。