Java对象与JSonp之间的转换
文章目录
Java对象和JSON字符串的互转
普通切割(不推荐)
package San;
public class PuTong {
public static void main(String[] args) {
/*
Java对象和JSON字符串的互转
前台的字符串
*/
String s = "{\"name\":\"san\",\"age\":18,\"sex\":\"男\"}";
//将大括号替换为空串
String ee = s.replace("{", "");
String ew = ee.replace("}", "");
//以,进行切割 分割为一个数组
String[] sp = ew.split(",");
/*
取出第一个元素
以:进行切割 然后转义替换引号为""
取出数据
*/
String[] sl = sp[0].split(":");
String re = sl[1].replace("\"", "");
String ra = sl[0].replace("\"", "");
String[] sl1 = sp[1].split(":");
String re1 = sl1[1].replace("\"", "");
String ra1 = sl1[0].replace("\"", "");
String[] sl2 = sp[2].split(":");
String re2 = sl2[1].replace("\"", "");
String ra2 = sl2[0].replace("\"", "");
System.out.println(re);
System.out.println(ra);
System.out.println(re1);
System.out.println(ra1);
System.out.println(re2);
System.out.println(ra2);
}
}
运行结果:
san
name
18
age
男
sex
Jackson 杰克逊
对于Json字符串与java对象的互相转换 我们一般都是借助第三方的JSON解析器
Json解析器:Jsonlib Gson fastjson jackson杰克逊
jackson 杰克逊 是SpringMVC内置的JSON解析器
1. 导入jackson 杰克逊的三个jar包 进行依赖
2.开始使用
- Java对象转换JSON字符串
- 从数据库查询出来数据
- 把数据库查询出来的零碎数据 封装到Java对象
- 把Java对象转换成JSON字符串
把Java对象转换成JSON字符串
package San;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
public class MyTest {
public static void main(String[] args) {
Stu stu = new Stu("san", 18, "男");
ObjectMapper ma = new ObjectMapper();
try {
String s = ma.writeValueAsString(stu);
System.out.println(s);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
}
}
运行结果:
{"name":"san","age":18,"sex":"男"}
把转换的JSON数据存到文件中
try {
ma.writeValue(new File("student.json"),stu);
} catch (IOException e) {
e.printStackTrace();
}
package San1;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class Per {
private String name;
private double sale;
private int age;
private char sex;
@JsonFormat(pattern = "yyyy年MM月dd日 HH时mm分ss秒", timezone = "GMT+8")
private Date birth;
private Car car;
private List<Car> cars;
public Per() {
}
public Per(String name, double sale, int age, char sex, Date birth, Car car) {
this.name = name;
this.sale = sale;
this.age = age;
this.sex = sex;
this.birth = birth;
this.car = car;
}
public Per(String name, double sale, int age, char sex, Date birth) {
this.name = name;
this.sale = sale;
this.age = age;
this.sex = sex;
this.birth = birth;
}
public Per(String name, double sale, int age, char sex, Date birth, Car car, List<Car> cars) {
this.name = name;
this.sale = sale;
this.age = age;
this.sex = sex;
this.birth = birth;
this.car = car;
this.cars = cars;
}
public Car getCar() {
return car;
}
public void setCar(Car car) {
this.car = car;
}
public List<Car> getCars() {
return cars;
}
public void setCars(List<Car> cars) {
this.cars = cars;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getSale() {
return sale;
}
public void setSale(double sale) {
this.sale = sale;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public char getSex() {
return sex;
}
public void setSex(char sex) {
this.sex = sex;
}
public Date getBirth() {
return birth;
}
public void setBirth(Date birth) {
this.birth = birth;
}
}
注释
public class HuLv {
public static void main(String[] args) {
Per person = new Per("wa", 3333.33, 20, '男',new Date());
ObjectMapper mapper = new ObjectMapper();
String s = null;
try {
s = mapper.writeValueAsString(person);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
System.out.println(s);
}
}
原始运行结果:
{"name":"wa","sale":3333.33,"age":20,"sex":"男","birth":1600828814062}
@JsonIgnore 忽略该属性,不要转成JSON
public class Per {
private String name;
@JsonIgnore
private double sale;
private int age;
@JsonIgnore
private char sex;
@JsonIgnore
private Date birth;
public Per() {
}
运行结果:
{"name":"wa","age":20}
@JsonFormat(pattern = “yyyy-MM-dd HH:mm:ss”, timezone = “GMT+8”) 格式化日期,把毫秒值格式化成年月日,时分秒
@JsonFormat(pattern = "yyyy年MM月dd日 HH时mm分ss秒", timezone = "GMT+8")
private Date birth;
运行结果:
{"name":"wa","sale":3333.33,"age":20,"sex":"男","birth":"2020年09月23日 10时43分05秒"}
hashmap存储对象 转换JSON字符串并保存文件
package San;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
public class Map {
public static void main(String[] args) {
Stu n0 = new Stu("额", 18, "男");
Stu n1 = new Stu("分", 18, "男");
Stu n2 = new Stu("吧", 18, "男");
Stu n3 = new Stu("啊", 18, "男");
HashMap<String, Stu> st = new HashMap<>();
st.put("n0",n0);
st.put("n1",n1);
st.put("n2",n2);
st.put("n3",n3);
ObjectMapper o = new ObjectMapper();
try {
String s1 = o.writeValueAsString(st);
System.out.println(s1);
o.writeValue(new File("listst.json"), st);
} catch (IOException e) {
e.printStackTrace();
}
}
}
运行结果:
{"n0":{"name":"额","age":18,"sex":"男"},"n1":{"name":"分","age":18,"sex":"男"},"n2":{"name":"吧","age":18,"sex":"男"},"n3":{"name":"啊","age":18,"sex":"男"}}
集合存储对象 转换JSON字符串并保存文件
package San;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
public class List {
public static void main(String[] args) {
Stu n0 = new Stu("额", 18, "男");
Stu n1 = new Stu("分", 18, "男");
Stu n2 = new Stu("吧", 18, "男");
Stu n3 = new Stu("啊", 18, "男");
ArrayList<Stu> s = new ArrayList<>();
s.add(n0);
s.add(n1);
s.add(n2);
s.add(n3);
ObjectMapper o = new ObjectMapper();
try {
String s1 = o.writeValueAsString(s);
System.out.println(s1);
o.writeValue(new File("list.json"), s);
} catch (IOException e) {
e.printStackTrace();
}
}
}
运行结果:
[{"name":"额","age":18,"sex":"男"},{"name":"分","age":18,"sex":"男"},{"name":"吧","age":18,"sex":"男"},{"name":"啊","age":18,"sex":"男"}]
对象内包含另一对象与包含对象集合
package San1;
public class Car {
private String carName;
private double carSal;
public Car() {
}
public Car(String carName, double carSal) {
this.carName = carName;
this.carSal = carSal;
}
public String getCarName() {
return carName;
}
public void setCarName(String carName) {
this.carName = carName;
}
public double getCarSal() {
return carSal;
}
public void setCarSal(double carSal) {
this.carSal = carSal;
}
}
package San1;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
public class Test {
public static void main(String[] args) {
Car car = new Car("ww", 33333.3);
Per per = new Per("ee", 77777.7, 19, '男', new Date(), car);
ObjectMapper mapper = new ObjectMapper();
String s = null;
try {
s = mapper.writeValueAsString(per);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
System.out.println(s);
System.out.println("========================================");
Car car1 = new Car("ww1", 33333.3);
Car car2 = new Car("ww2", 33333.3);
Car car3 = new Car("ww3", 33333.3);
Car car4 = new Car("ww4", 33333.3);
Car car5 = new Car("ww5", 33333.3);
Car car6 = new Car("ww6", 33333.3);
ArrayList<Car> cars = new ArrayList<>();
cars.add(car1);
cars.add(car2);
cars.add(car3);
cars.add(car4);
cars.add(car5);
cars.add(car6);
Per person1 = new Per("ee", 77777.7, 19, '男', new Date(), car, cars);
String s1 = null;
try {
s1 = mapper.writeValueAsString(person1);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
System.out.println(s1);
try {
mapper.writeValue(new FileWriter("person.json"), person1);
} catch (IOException e) {
e.printStackTrace();
}
}
}
运行结果:
{"name":"ee","sale":77777.7,"age":19,"sex":"男","birth":"2020年09月23日 11时41分57秒","car":{"carName":"ww","carSal":33333.3},"cars":null}
========================================
{"name":"ee","sale":77777.7,"age":19,"sex":"男","birth":"2020年09月23日 11时41分58秒","car":{"carName":"ww","carSal":33333.3},"cars":[{"carName":"ww1","carSal":33333.3},{"carName":"ww2","carSal":33333.3},{"carName":"ww3","carSal":33333.3},{"carName":"ww4","carSal":33333.3},{"carName":"ww5","carSal":33333.3},{"carName":"ww6","carSal":33333.3}]}
JSON字符串转换成Java对象
o.readValue(s, Tea.class)
package San3;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;
public class ZhuanHuan {
public static void main(String[] args) {
String s = "{\"name\":\"San\",\"age\":23,\"sex\":\"男\"}";
ObjectMapper o = new ObjectMapper();
Tea tea = null;
try {
tea = o.readValue(s, Tea.class);
} catch (IOException e) {
e.printStackTrace();
}
System.out.println(tea.getName());
System.out.println(tea.getAge());
System.out.println(tea.getSex());
}
}
运行结果:
San
23
男
JSON字符串转换java对象 包含集合属性
package San4;
import java.util.List;
public class Joker {
private String msg;
private List<String> jokes;
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public List<String> getJokes() {
return jokes;
}
public void setJokes(List<String> jokes) {
this.jokes = jokes;
}
}
package San4;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;
import java.util.List;
public class Test {
public static void main(String[] args) {
String s="{\"msg\":\"获取2条笑话\",\"jokes\":[\"小时候家里穷,没吃过生日蛋糕,我问我爸那是什么味道。 我爸说:“等你过生日那天就知道了”。 后来我等啊等,终于等到生日那天,我爸爸神秘兮兮地凑到我耳边对我说:“我问过别人了,生日蛋糕是奶油味的。\",\"和好朋友吵架一直趴桌上 哭成了泪人 老师突然叫我起来回答问题 我一起身 鼻涕从桌上到鼻孔拉了一米多长 老师看着晶莹剔透有弹性的鼻涕惊呆了 全部哄堂大笑 我也不好意思了 噗的一声笑了出来 并喷出了更多鼻涕\"]}";
Joker jokes = null;
try {
jokes = new ObjectMapper().readValue(s, Joker.class);
} catch (IOException e) {
e.printStackTrace();
}
String msg = jokes.getMsg();
System.out.println(msg);
List<String> jokes1 = jokes.getJokes();
System.out.println(jokes1);
}
}
运行结果:
获取2条笑话
[小时候家里穷,没吃过生日蛋糕,我问我爸那是什么味道。 我爸说:“等你过生日那天就知道了”。 后来我等啊等,终于等到生日那天,我爸爸神秘兮兮地凑到我耳边对我说:“我问过别人了,生日蛋糕是奶油味的。, 和好朋友吵架一直趴桌上 哭成了泪人 老师突然叫我起来回答问题 我一起身 鼻涕从桌上到鼻孔拉了一米多长 老师看着晶莹剔透有弹性的鼻涕惊呆了 全部哄堂大笑 我也不好意思了 噗的一声笑了出来 并喷出了更多鼻涕]
天气预报综合转换
package San5;
import java.util.List;
public class YuBao {
private MyData data;
private int status;
private String desc;
// {"data":{
// "yesterday":{
// "date":"21日星期一","high":"高温 14℃","fx":"东北风","low":"低温 12℃","fl":"<![CDATA[1级]]>","type":"中雨"},"city":"商洛",
// "forecast":[{
// "date":"22日星期二","high":"高温 16℃","fengli":"<![CDATA[1级]]>","low":"低温 11℃","fengxiang":"东北风","type":"小雨"},{"date":"23日星期三","high":"高温 23℃","fengli":"<![CDATA[1级]]>","low":"低温 11℃","fengxiang":"南风","type":"多云"},{"date":"24日星期四","high":"高温 24℃","fengli":"<![CDATA[1级]]>","low":"低温 13℃","fengxiang":"东南风","type":"多云"},{"date":"25日星期五","high":"高温 22℃","fengli":"<![CDATA[1级]]>","low":"低温 14℃","fengxiang":"东南风","type":"阴"},{"date":"26日星期六","high":"高温 22℃","fengli":"<![CDATA[2级]]>","low":"低温 14℃","fengxiang":"东南风","type":"多云"}],"ganmao":"感冒低发期,天气舒适,请注意多吃蔬菜水果,多喝水哦。","wendu":"14"},"status":1000,"desc":"OK"}
public MyData getData() {
return data;
}
public void setData(MyData data) {
this.data = data;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
}
class Yesterday {
private String date;
private String high;
private String fx;
private String low;
private String fl;
private String type;
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
public String getHigh() {
return high;
}
public void setHigh(String high) {
this.high = high;
}
public String getFx() {
return fx;
}
public void setFx(String fx) {
this.fx = fx;
}
public String getLow() {
return low;
}
public void setLow(String low) {
this.low = low;
}
public String getFl() {
return fl;
}
public void setFl(String fl) {
this.fl = fl;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
}
class MyData {
private Yesterday yesterday;
private String city;
private String ganmao;
private String wendu;
private List<Forecast> forecast;
public Yesterday getYesterday() {
return yesterday;
}
public void setYesterday(Yesterday yesterday) {
this.yesterday = yesterday;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public String getGanmao() {
return ganmao;
}
public void setGanmao(String ganmao) {
this.ganmao = ganmao;
}
public String getWendu() {
return wendu;
}
public void setWendu(String wendu) {
this.wendu = wendu;
}
public List<Forecast> getForecast() {
return forecast;
}
public void setForecast(List<Forecast> forecast) {
this.forecast = forecast;
}
}
class Forecast {
private String date;
private String high;
private String fengli;
private String low;
private String fengxiang;
private String type;
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
public String getHigh() {
return high;
}
public void setHigh(String high) {
this.high = high;
}
public String getFengli() {
return fengli;
}
public void setFengli(String fengli) {
this.fengli = fengli;
}
public String getLow() {
return low;
}
public void setLow(String low) {
this.low = low;
}
public String getFengxiang() {
return fengxiang;
}
public void setFengxiang(String fengxiang) {
this.fengxiang = fengxiang;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
}
package San5;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;
import java.util.List;
public class MyTest {
public static void main(String[] args) throws IOException {
// {"data":{"yesterday":{"date":"21日星期一","high":"高温 14℃","fx":"东北风","low":"低温 12℃","fl":"<![CDATA[1级]]>","type":"中雨"},"city":"商洛","forecast":[{"date":"22日星期二","high":"高温 16℃","fengli":"<![CDATA[1级]]>","low":"低温 11℃","fengxiang":"东北风","type":"小雨"},{"date":"23日星期三","high":"高温 23℃","fengli":"<![CDATA[1级]]>","low":"低温 11℃","fengxiang":"南风","type":"多云"},{"date":"24日星期四","high":"高温 24℃","fengli":"<![CDATA[1级]]>","low":"低温 13℃","fengxiang":"东南风","type":"多云"},{"date":"25日星期五","high":"高温 22℃","fengli":"<![CDATA[1级]]>","low":"低温 14℃","fengxiang":"东南风","type":"阴"},{"date":"26日星期六","high":"高温 22℃","fengli":"<![CDATA[2级]]>","low":"低温 14℃","fengxiang":"东南风","type":"多云"}],"ganmao":"感冒低发期,天气舒适,请注意多吃蔬菜水果,多喝水哦。","wendu":"14"},"status":1000,"desc":"OK"}
String jsonStr="{\"data\":{\"yesterday\":{\"date\":\"21日星期一\",\"high\":\"高温 14℃\",\"fx\":\"东北风\",\"low\":\"低温 12℃\",\"fl\":\"<![CDATA[1级]]>\",\"type\":\"中雨\"},\"city\":\"商洛\",\"forecast\":[{\"date\":\"22日星期二\",\"high\":\"高温 16℃\",\"fengli\":\"<![CDATA[1级]]>\",\"low\":\"低温 11℃\",\"fengxiang\":\"东北风\",\"type\":\"小雨\"},{\"date\":\"23日星期三\",\"high\":\"高温 23℃\",\"fengli\":\"<![CDATA[1级]]>\",\"low\":\"低温 11℃\",\"fengxiang\":\"南风\",\"type\":\"多云\"},{\"date\":\"24日星期四\",\"high\":\"高温 24℃\",\"fengli\":\"<![CDATA[1级]]>\",\"low\":\"低温 13℃\",\"fengxiang\":\"东南风\",\"type\":\"多云\"},{\"date\":\"25日星期五\",\"high\":\"高温 22℃\",\"fengli\":\"<![CDATA[1级]]>\",\"low\":\"低温 14℃\",\"fengxiang\":\"东南风\",\"type\":\"阴\"},{\"date\":\"26日星期六\",\"high\":\"高温 22℃\",\"fengli\":\"<![CDATA[2级]]>\",\"low\":\"低温 14℃\",\"fengxiang\":\"东南风\",\"type\":\"多云\"}],\"ganmao\":\"感冒低发期,天气舒适,请注意多吃蔬菜水果,多喝水哦。\",\"wendu\":\"14\"},\"status\":1000,\"desc\":\"OK\"}";
YuBao yuBao = new ObjectMapper().readValue(jsonStr, YuBao.class);
int status = yuBao.getStatus();
String desc = yuBao.getDesc();
System.out.println(status);
System.out.println(desc);
MyData data = yuBao.getData();
Yesterday yesterday = data.getYesterday();
String type = yesterday.getType();
System.out.println(type);
System.out.println("===================================");
List<Forecast> forecast = data.getForecast();
Forecast forecast1 = forecast.get(0);
String fengxiang = forecast1.getFengxiang();
System.out.println(fengxiang);
}
}
运行结果:
1000
OK
中雨
===================================
东北风
GSonFormat插件
快捷键 Alt+Insert 或 Alt+U
package San6;
import java.util.List;
public class GsonFormat {
/**
* yesterday : {"date":"21日星期一","high":"高温 14℃","fx":"东北风","low":"低温 12℃","fl":"<![CDATA[1级]]>","type":"中雨"}
* city : 商洛
* forecast : [{"date":"22日星期二","high":"高温 16℃","fengli":"<![CDATA[1级]]>","low":"低温 11℃","fengxiang":"东北风","type":"小雨"},{"date":"23日星期三","high":"高温 23℃","fengli":"<![CDATA[1级]]>","low":"低温 11℃","fengxiang":"南风","type":"多云"},{"date":"24日星期四","high":"高温 24℃","fengli":"<![CDATA[1级]]>","low":"低温 13℃","fengxiang":"东南风","type":"多云"},{"date":"25日星期五","high":"高温 22℃","fengli":"<![CDATA[1级]]>","low":"低温 14℃","fengxiang":"东南风","type":"阴"},{"date":"26日星期六","high":"高温 22℃","fengli":"<![CDATA[2级]]>","low":"低温 14℃","fengxiang":"东南风","type":"多云"}]
* ganmao : 感冒低发期,天气舒适,请注意多吃蔬菜水果,多喝水哦。
* wendu : 14
*/
private DataBean data;
/**
* data : {"yesterday":{"date":"21日星期一","high":"高温 14℃","fx":"东北风","low":"低温 12℃","fl":"<![CDATA[1级]]>","type":"中雨"},"city":"商洛","forecast":[{"date":"22日星期二","high":"高温 16℃","fengli":"<![CDATA[1级]]>","low":"低温 11℃","fengxiang":"东北风","type":"小雨"},{"date":"23日星期三","high":"高温 23℃","fengli":"<![CDATA[1级]]>","low":"低温 11℃","fengxiang":"南风","type":"多云"},{"date":"24日星期四","high":"高温 24℃","fengli":"<![CDATA[1级]]>","low":"低温 13℃","fengxiang":"东南风","type":"多云"},{"date":"25日星期五","high":"高温 22℃","fengli":"<![CDATA[1级]]>","low":"低温 14℃","fengxiang":"东南风","type":"阴"},{"date":"26日星期六","high":"高温 22℃","fengli":"<![CDATA[2级]]>","low":"低温 14℃","fengxiang":"东南风","type":"多云"}],"ganmao":"感冒低发期,天气舒适,请注意多吃蔬菜水果,多喝水哦。","wendu":"14"}
* status : 1000
* desc : OK
*/
private int status;
private String desc;
public DataBean getData() {
return data;
}
public void setData(DataBean data) {
this.data = data;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
public static class DataBean {
/**
* date : 21日星期一
* high : 高温 14℃
* fx : 东北风
* low : 低温 12℃
* fl : <![CDATA[1级]]>
* type : 中雨
*/
private YesterdayBean yesterday;
private String city;
private String ganmao;
private String wendu;
/**
* date : 22日星期二
* high : 高温 16℃
* fengli : <![CDATA[1级]]>
* low : 低温 11℃
* fengxiang : 东北风
* type : 小雨
*/
private List<ForecastBean> forecast;
public YesterdayBean getYesterday() {
return yesterday;
}
public void setYesterday(YesterdayBean yesterday) {
this.yesterday = yesterday;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public String getGanmao() {
return ganmao;
}
public void setGanmao(String ganmao) {
this.ganmao = ganmao;
}
public String getWendu() {
return wendu;
}
public void setWendu(String wendu) {
this.wendu = wendu;
}
public List<ForecastBean> getForecast() {
return forecast;
}
public void setForecast(List<ForecastBean> forecast) {
this.forecast = forecast;
}
public static class YesterdayBean {
private String date;
private String high;
private String fx;
private String low;
private String fl;
private String type;
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
public String getHigh() {
return high;
}
public void setHigh(String high) {
this.high = high;
}
public String getFx() {
return fx;
}
public void setFx(String fx) {
this.fx = fx;
}
public String getLow() {
return low;
}
public void setLow(String low) {
this.low = low;
}
public String getFl() {
return fl;
}
public void setFl(String fl) {
this.fl = fl;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
}
public static class ForecastBean {
private String date;
private String high;
private String fengli;
private String low;
private String fengxiang;
private String type;
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
public String getHigh() {
return high;
}
public void setHigh(String high) {
this.high = high;
}
public String getFengli() {
return fengli;
}
public void setFengli(String fengli) {
this.fengli = fengli;
}
public String getLow() {
return low;
}
public void setLow(String low) {
this.low = low;
}
public String getFengxiang() {
return fengxiang;
}
public void setFengxiang(String fengxiang) {
this.fengxiang = fengxiang;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
}
}
}
package San6;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;
import java.util.List;
public class Test {
public static void main(String[] args) throws IOException {
String jsonStr = "{\"data\":{\"yesterday\":{\"date\":\"21日星期一\",\"high\":\"高温 14℃\",\"fx\":\"东北风\",\"low\":\"低温 12℃\",\"fl\":\"<![CDATA[1级]]>\",\"type\":\"中雨\"},\"city\":\"商洛\",\"forecast\":[{\"date\":\"22日星期二\",\"high\":\"高温 16℃\",\"fengli\":\"<![CDATA[1级]]>\",\"low\":\"低温 11℃\",\"fengxiang\":\"东北风\",\"type\":\"小雨\"},{\"date\":\"23日星期三\",\"high\":\"高温 23℃\",\"fengli\":\"<![CDATA[1级]]>\",\"low\":\"低温 11℃\",\"fengxiang\":\"南风\",\"type\":\"多云\"},{\"date\":\"24日星期四\",\"high\":\"高温 24℃\",\"fengli\":\"<![CDATA[1级]]>\",\"low\":\"低温 13℃\",\"fengxiang\":\"东南风\",\"type\":\"多云\"},{\"date\":\"25日星期五\",\"high\":\"高温 22℃\",\"fengli\":\"<![CDATA[1级]]>\",\"low\":\"低温 14℃\",\"fengxiang\":\"东南风\",\"type\":\"阴\"},{\"date\":\"26日星期六\",\"high\":\"高温 22℃\",\"fengli\":\"<![CDATA[2级]]>\",\"low\":\"低温 14℃\",\"fengxiang\":\"东南风\",\"type\":\"多云\"}],\"ganmao\":\"感冒低发期,天气舒适,请注意多吃蔬菜水果,多喝水哦。\",\"wendu\":\"14\"},\"status\":1000,\"desc\":\"OK\"}";
ObjectMapper mapper = new ObjectMapper();
GsonFormat myYuBao = mapper.readValue(jsonStr, GsonFormat.class);
String desc = myYuBao.getDesc();
System.out.println(desc);
GsonFormat.DataBean data = myYuBao.getData();
String city = data.getCity();
System.out.println(city);
List<GsonFormat.DataBean.ForecastBean> forecast = data.getForecast();
GsonFormat.DataBean.ForecastBean forecastBean = forecast.get(0);
String fengxiang = forecastBean.getFengxiang();
System.out.println(fengxiang);
}
}
运行结果:
OK
商洛
东北风
Ajax的应用:校验用户名是否存在
-
服务器响应的数据,在客户端使用时,要想当做json数据格式使用。有两种解决方案:
-
$.get(type):将最后一个参数type指定为"json"
-
在服务器端设置MIME类型
response.setContentType("application/json;charset=utf-8"); //设置跨域请求 response.setHeader("Access-Control-Allow-Origin","*");
-