Json字符串转成对象
Hello吖😊,我是孤音(一个你理解不了的程序猿),今天来分享一个小技巧,能够大大滴提高效率额
问题😵
接收到一串JSON格式的字符串,需要获取其中某些字段的值
思路🤪
我们使用阿里巴巴的fastjson,就能够快速的解决这个问题呢😀
步骤😏
首先引入依赖,引入FastJson的依赖(下面会给出的),我这里用了Lombok插件,还需要引入LomBok的依赖。
依赖引完后就可以开始编写代码了,下面我给了参考的Demo,大家参照那个逻辑就可以解决遇到的类似的问题啦😁
需要引的依赖
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.54</version> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.20</version> <scope>compile</scope> </dependency>
参考Demo
import com.alibaba.fastjson.JSONObject; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import lombok.extern.slf4j.Slf4j; import java.io.Serializable; @Slf4j public class JsonTest { public static void main(String[] args) { /** * 解析json字符串为JSON对象,用到的是 阿里巴巴的fastjson,需要引依赖的额 */ /* * json字符串 { "name": "tcx", "age": "20", "sex": "boy", "moreInfo": { "hobby": "编程" } } */ String s = "{\n" + " \"name\": \"tcx\",\n" + " \"age\": \"20\",\n" + " \"sex\": \"boy\",\n" + " \"moreInfo\": {\n" + " \"hobby\": \"编程\"\n" + " }\n" + "}"; //解析成JSONObject对象 JSONObject jsonObject = JSONObject.parseObject(s); // 获取jsonObject中的moreInfo字段的内容,并将其转换成JSONObject对象(为了能够取出里面的内容) JSONObject data = JSONObject.parseObject(jsonObject.getString("moreInfo")); //取出其中的内容 String hobby = data.getString("hobby"); System.out.println("hobby = " + hobby); System.out.println("========================"); //下面呢,是通过对象去接收的 Person person = JSONObject.parseObject(s, Person.class); System.out.println(person); } } @Data @NoArgsConstructor @AllArgsConstructor class Person implements Serializable { private String name; private String age; private String sex; private MoreInfo moreInfo; } @Data @NoArgsConstructor @AllArgsConstructor class MoreInfo implements Serializable{ private String hobby; }
另外也放张运行结果的图嘛