JAVA,为什么我不能引用gson包?

Python011

JAVA,为什么我不能引用gson包?,第1张

gson是第三方包,最好的方式是你在你的IDE里面引入,我不知道你用的是eclipse还是idea,如果是idea,打开你当前项目的project Structure选项,点击最右侧的加号,

然后在你的本地目录中选择具体的jar包,

如果你用的是eclipse,也是一样的,要去设置你的项目依赖jar包,这些网上都可以搜到的。

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如何定义.剩下的就非常简单了.