实体类和json串的转换
import com.google.gson.Gson;
javaBean转换为json格式:
String str = new Gson().toJson(javaBean);
json字符串转换为bean:
String jsonStr; //拼接form表单字段值
Gson g = new Gson();
ChqyhzBean hz = g.fromJson(jsonStr, ChqyhzBean.class);
private static String buildUrl() {
String url3 = null;
List<AgreeBean> list = new ArrayList<>();
String title = "";
list.add(new AgreeBean("《xxx》", url1));
list.add(new AgreeBean("《yyy》", url2));
list.add(new AgreeBean("《zzz》", url3));
title = "登录";
String pageTitle = "文字";
Gson gson = new Gson();
String result = gson.toJson(list);
url3 = CC_URL + "?systemSign=YYYYTTTT&sSign=NNNN&agreement=" + result + "&title=" + title + "&pageTitle=" + pageTitle;
return url3;
}
JSONObject使用方法详解
所需jar包
json-lib-2.4-jdk15.jar
commons-beanutils-1.8.3.jar
commons-collections-3.2.1.jar
commons-lang-2.5.jar
commons-logging-1.1.1.jar
ezmorph-1.0.6.jar
其中 JSONObject 目前最新的版本为2.4,其他版本下载地址为:http://sourceforge.net/projects/json-lib/files/json-lib/
/**
* 通过原生生成json数据格式
*/
JSONObject jsonObject=new JSONObject();
jsonObject.put("name","李四");
jsonObject.put("home",true);
jsonObject.put("number",134.11);
jsonObject.put("sex","男");
System.out.println(jsonObject.toString());
/**通过map来生成json数据格式
*/
HashMap<String,Object> map=new HashMap<String, Object>();
map.put("name","张三");
map.put("home",true);
map.put("技能",new String[]{"json","java","python"});
System.out.println(JSONObject.fromObject(map).toString());
JSONArray mapJson=JSONArray.fromObject(map); //数组格式
mapJson.add(1, new String[]{"dajhdka","dagdhag"});
// mapJson.add(2,"是否有女朋友","");
System.out.println(mapJson.toString());
/**
* 通过实体类生成json数据格式
*/
User user=new User("小红","女",1550.2,false);
JSONObject jsonObject1=JSONObject.fromObject(user);
System.out.println(jsonObject1);
@Test
public void TestGSON()
{
GsonBuilder gsonBuilder=new GsonBuilder(); //设定格式的
User user=new User("小红","女",1550.2,false,new Date());
/**
* String toJson(object) 返回值是String 将对象转换成json格式
*/
gsonBuilder.setDateFormat("yyyy-MM-dd HH:mm:ss"); //设定date属性 有误json本身没有date类型
Gson gson=gsonBuilder.create();
String Gjson=gson.toJson(user);
System.out.println(Gjson);
/**
* 将JSON格式转换成实体类
* 不清楚为什么我用了 复用功能的话 json格式转换成的实体类就没有值了 就是无法定位到
*/
String content="{\"name\":\"小红\",\"sex\":\"女\",\"number\":1550.2,\"home\":false,\"birthday\":\"2020-02-17\"}";
User user1=gson.fromJson(content,User.class);
System.out.println(user1);
}
JSONObject读取外部json文件
JSON.json:
{
"name": "小红",
"sex": "女",
"number": 1667.2,
"home": false
}
@Test
public void JSONTest() throws IOException {
//获取json文档
/**
* class.getResource("") 会获取target底下的class的 上一级的包
* 这里是 file:/D:/IdeaProjects/Web/JSON_GSON__TEST/target/test-classes/test/
*/
// System.out.println(JSONTextParsing.class.getResource(""));
File file=new File(JSONTextParsing.class.getResource("JSON.json").getFile());//找到该文件
/**
* 使用阿帕奇的jar包 commons-io
* 获取文本信息 String类型 readFileToString 并保留格式
*/
String content=FileUtils.readFileToString(file);
JSONObject jsonObject=JSONObject.fromObject(content);
System.out.println(jsonObject);
}