java真的难用
具体操作代码有详细说明,绝对能用,字符串 转 json对象!
package com.helloword;
import org.junit.Test;
import org.springframework.boot.test.context.SpringBootTest;
import com.google.gson.Gson;
import com.google.gson.JsonElement;
import com.google.gson.JsonParser;
//@RunWith(SpringRunner.class)
@SpringBootTest
public class GzfDemoApplicationTests {
@Test
public void contextLoads() {
/* json字符串反序列化成内存对象 */
String str = "{a:34,'b':'kk',ee:'hello'}"; /* 注意里面键值对两种写法都可以 */
JsonParser jp = new JsonParser();/* Gson 的解析类型 不要用Gson类哟 */
JsonElement jt = jp.parse(str); /* 不能直接得到内存对象进行操作,先成为json内存的子序列 */
System.out.println(jt.toString());
System.out.println(jt.getAsJsonObject().get("ee"));/* JsonElement转成json内存对象才能用 */
/* gson操作jsonarray */
String arrstr = "['ee',344,{a:34,'b':'kk'}]";
JsonParser jpar = new JsonParser(); /* Gson 的解析类型 不要用Gson类哟 */
JsonElement ef = jpar.parse(arrstr);
System.out.println(ef.toString());
System.out.println(ef.getAsJsonArray().get(2));/* JsonElement转成json内存对象才能用 */
/***
* 值得注意的使JsonElement
* 可以是任意对象(内存对象或者实体对象),ef.getAsJsonArray().add(bool);添加子元素需要先转换
***/
/* Gson 实体对象操作 对象转json */
Gson gson = new Gson();
人 张三 = new 人(); /* 实例化 */
张三.姓名 = "张三";
张三.年龄 = 29;
JsonElement ele = gson.toJsonTree(张三);/* 复杂的json可以用这个 */
System.out.println(ele);
System.out.println(gson.toJson(张三));/* 简单的json用这个 */
/* Gson 实体对象操作 Json转对象 */
String gsonstr = "{\"姓名\":\"李四\",\"年龄\":20}";
人 李四 = gson.fromJson(gsonstr, 人.class);
System.out.println(李四.姓名);
}
class 人 {
String 姓名;
int 年龄;
}
}
结果:
{"a":34,"b":"kk","ee":"hello"}
"hello"
["ee",344,{"a":34,"b":"kk"}]
{"a":34,"b":"kk"}
{"姓名":"张三","年龄":29}
{"姓名":"张三","年龄":29}
李四
忘了说:JsonObejct 可能直接生成内存对象,创建Json