java中使用json

朱雀 2022-03-20 04:20 360阅读 0赞

闲聊

学着想放弃,放弃又没理由

常用的 JSON 解析类库

Java中并没有内置JSON的解析,因此使用JSON需要借助第三方类库。

  • Gson: 谷歌开发的 JSON 库,功能十分全面。
  • Jackson: 社区十分活跃且更新速度很快。
  • FastJson: 阿里巴巴开发的 JSON 库,性能十分优秀。

相互转换

此列子不是自己所写,如有问题,还见谅。

  1. //从字符串解析JSON对象
  2. JSONObject obj = JSON.parseObject("{\"runoob\":\"菜鸟教程\"}");
  3. //从字符串解析JSON数组
  4. JSONArray arr = JSON.parseArray("[\"菜鸟教程\",\"RUNOOB\"]\n");
  5. //将JSON对象转化为字符串
  6. String objStr = JSON.toJSONString(obj);
  7. //将JSON数组转化为字符串
  8. String arrStr = JSON.toJSONString(arr);

使用例子

  1. package com.doit8.test.jsontest.pojo;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. public class Person {
  5. private String username;
  6. private String email;
  7. private String sex;
  8. private int age;
  9. private List<Card> cardList=new ArrayList<Card>();
  10. public String getUsername() {
  11. return username;
  12. }
  13. public void setUsername(String username) {
  14. this.username = username;
  15. }
  16. public String getEmail() {
  17. return email;
  18. }
  19. public void setEmail(String email) {
  20. this.email = email;
  21. }
  22. public String getSex() {
  23. return sex;
  24. }
  25. public void setSex(String sex) {
  26. this.sex = sex;
  27. }
  28. public int getAge() {
  29. return age;
  30. }
  31. public void setAge(int age) {
  32. this.age = age;
  33. }
  34. public List<Card> getCardList() {
  35. return cardList;
  36. }
  37. public void setCardList(List<Card> cardList) {
  38. this.cardList = cardList;
  39. }
  40. }
  41. package com.doit8.test.jsontest.pojo;
  42. public class Card {
  43. private String cardName;
  44. private String cardCode;
  45. private Integer cardValue;
  46. public String getCardName() {
  47. return cardName;
  48. }
  49. public void setCardName(String cardName) {
  50. this.cardName = cardName;
  51. }
  52. public String getCardCode() {
  53. return cardCode;
  54. }
  55. public void setCardCode(String cardCode) {
  56. this.cardCode = cardCode;
  57. }
  58. public Integer getCardValue() {
  59. return cardValue;
  60. }
  61. public void setCardValue(Integer cardValue) {
  62. this.cardValue = cardValue;
  63. }
  64. }
  65. package com.doit8.test.jsontest;
  66. import java.util.ArrayList;
  67. import java.util.List;
  68. import com.alibaba.fastjson.JSON;
  69. import com.alibaba.fastjson.JSONArray;
  70. import com.alibaba.fastjson.JSONObject;
  71. import com.doit8.test.jsontest.pojo.Card;
  72. import com.doit8.test.jsontest.pojo.Person;
  73. /**
  74. * JSON转换
  75. *
  76. */
  77. public class App
  78. {
  79. public static void main( String[] args )
  80. {
  81. //1。通过对象生成JSON串,对象里包含对象数组转成JSON串。
  82. Person person=new Person();
  83. person.setUsername("xiejava");
  84. person.setSex("man");
  85. person.setAge(38);
  86. person.setEmail("xiejava@ishareread.com");
  87. Card card1=new Card();
  88. card1.setCardName("bankCard1");
  89. card1.setCardCode("888888888");
  90. card1.setCardValue(99999999);
  91. Card card2=new Card();
  92. card2.setCardName("bankCard1");
  93. card2.setCardCode("999999999");
  94. card2.setCardValue(222222222);
  95. //对象数组
  96. List<Card> cards=new ArrayList<Card>();
  97. cards.add(card1);
  98. cards.add(card2);
  99. person.setCardList(cards);
  100. String json = JSON.toJSON(person).toString();
  101. System.out.println(json);
  102. //2.通过JSON对象生成JSON串
  103. JSONObject jObject=new JSONObject();
  104. jObject.put("username", "xiejava");
  105. jObject.put("sex", "man");
  106. jObject.put("age", 38);
  107. jObject.put("email", "xiejava@ishareread.com");
  108. //通过JSONArray包装对象数组
  109. JSONArray jArray=new JSONArray();
  110. jArray.addAll(cards);
  111. jObject.put("cardList", jArray);
  112. String json2=jObject.toJSONString();
  113. System.out.println(json2);
  114. //3.通过JSON对象生成JSON串
  115. JSONObject jObject2=new JSONObject();
  116. jObject2.put("username", "xiejava");
  117. jObject2.put("sex", "man");
  118. jObject2.put("age", 38);
  119. jObject2.put("email", "xiejava@ishareread.com");
  120. //构造JSON字符串
  121. String cardjsonStr1="{\"cardName\":\"bankCard1\",\"cardCode\":\"888888888\",\"cardValue\":99999999}";
  122. String cardjsonStr2="{\"cardName\":\"bankCard2\",\"cardCode\":\"999999999\",\"cardValue\":222222222}";
  123. JSON.parseObject(cardjsonStr1);
  124. JSONArray jArray2=new JSONArray();
  125. //将JSON字符串转成JSON对象,加入到JSONArray,[注意一定要用JSON.parseObject()方法转换成JSON对象,否则还是字符串,转成JSON串的时候会带双引号。]
  126. jArray2.add(JSON.parseObject(cardjsonStr1));
  127. jArray2.add(JSON.parseObject(cardjsonStr2));
  128. jObject2.put("cardList", jArray2);
  129. String json3=jObject2.toJSONString();
  130. System.out.println(json3);
  131. }
  132. }

发表评论

表情:
评论列表 (有 0 条评论,360人围观)

还没有评论,来说两句吧...

相关阅读

    相关 java使用json

    > 闲聊  学着想放弃,放弃又没理由 > 常用的 JSON 解析类库 Java中并没有内置JSON的解析,因此使用JSON需要借助第三方类库。   [Gso