博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java解析JSON对象
阅读量:5164 次
发布时间:2019-06-13

本文共 3436 字,大约阅读时间需要 11 分钟。

今天学习一下Java 解析 JSON

Game Starts

参考文档

  1) www.json.org

  2 ) 参考公司其他人的代码(这个就不说了)

依赖jar包

  1) org.json.jar 提供以下我的网盘链接

主要的类

  JSON主要有两种结构

    1)name/value 的集合

    2)value 的集合,在大多数语言中的list,array等,这里的 value 个人觉得就是一个JSON,也就是说是JSON的集合

  JAVA处理JSON的类

  1) JSONObject  有点类似于Map, 和JSON结构一致,key一般为String,value 不统一(string,int,array……)

  2) JSONArray   JSONObject数组

What's Up

解析网络上传过来的JSON对象怎么办(给个笨法子)

1 String url;2 InputStream is = new URL(url).openStream(); 3 BufferedReader br = new BufferedReader(new InputStreamReader(is,"utf-8")); 4 StringBuffer jsonBuffer = new StringBuffer(); 5 String line; 6 while((line = br.readLine()) != null) { 7 jsonBuffer.append(line); 8 }

遇到个问题:在本机调试的很好,但是部署到服务器就不行了。

解决办法:url用utf-8处理一下,嘿嘿!

1 java.net.URLEncoder.encode(url, "utf-8")

Always Be Coding

创建JSON

1 package server; 2  3 import org.json.JSONArray; 4 import org.json.JSONException; 5 import org.json.JSONObject; 6  7 public class JSonCreator { 8     public static String getJSONString() throws JSONException { 9         JSONObject jsonObjet = new JSONObject();//书架10         jsonObjet.put("total", 3);//3本书11         JSONArray jsonaArray = new JSONArray();//书的集合12         JSONObject sub = new JSONObject();//一本书13         sub.put("bookName", "book1");//书名14         sub.put("price", 12.0);//价格15         sub.put("publisher", "p1");//出版社16         jsonaArray.put(sub);17         sub = new JSONObject();18         sub.put("bookName", "book2");19         sub.put("price", 22.0);20         sub.put("publisher", "p2");21         jsonaArray.put(sub);22         sub = new JSONObject();23         sub.put("bookName", "book3");24         sub.put("price", 32.0);25         sub.put("publisher", "p3");26         jsonaArray.put(sub);27         jsonObjet.put("books", jsonaArray);28         return jsonObjet.toString();29     }30     public static void main(String[] args) throws JSONException {31         System.out.println(getJSONString());32         33     }

显示结果(自己打了几个换行)

{    "total":1234,    "books":[        {
"price":12,"publisher":"p1","bookName":"book1"}, {
"price":22,"publisher":"p2","bookName":"book2"}, {
"price":32,"publisher":"p3","bookName":"book3"} ]}

解析JSON

1 package client; 2  3 import org.json.JSONArray; 4 import org.json.JSONException; 5 import org.json.JSONObject; 6  7 import server.JSonCreator; 8  9 public class JSonParser {10     public static void parseJSON(String json) throws JSONException {11         12         JSONObject jsonObject = new JSONObject(json);//书架13         System.out.println("total:"+jsonObject.getInt("total"));//数量14         JSONArray jsonArray = jsonObject.getJSONArray("books");//书集合15         for(int i = 0; i < jsonArray.length(); i++) {16             JSONObject book = jsonArray.getJSONObject(i);17             System.out.print("bookName : " + book.getString("bookName"));18             System.out.print("     price : " + book.getDouble("price"));19             System.out.print("     publisher : " + book.getString("publisher"));20             System.out.println();21         }22     }23     public static void main(String[] args) throws JSONException {24         String json = JSonCreator.getJSONString();25         parseJSON(json);26     }27 }

显示结果

total:3bookName : book1     price : 12.0     publisher : p1bookName : book2     price : 22.0     publisher : p2bookName : book3     price : 32.0     publisher : p3

TO BE CONTINUED……

转载于:https://www.cnblogs.com/erbin/p/3914232.html

你可能感兴趣的文章
抽屉问题 吃糖果
查看>>
js常用的数组去重方法
查看>>
Setting up a Reverse Proxy using IIS, URL Rewrite and ARR
查看>>
bzoj 4818: [Sdoi2017]序列计数
查看>>
生成对抗网络(Generative Adversarial Network)阅读笔记
查看>>
GIT原理和常用命令速成
查看>>
Jmeter之集合点与关联
查看>>
springboot整合webservice
查看>>
字符串匹配KMP算法详解
查看>>
单词查找排序输出
查看>>
TCP三次握手和四次挥手及用户访问网页流程
查看>>
echo常用操作
查看>>
算法笔记
查看>>
LeetCode 237. Delete Node in a Linked List 删除链表结点(只给定要删除的结点) C++/Java...
查看>>
LCA倍增模板
查看>>
EMS-Demo 雇员管理系统演示
查看>>
软件工程第二次作业——心得体会(结对编程)
查看>>
ORA-12560: TNS: 协议适配器错误 ORA-12154: TNS: 无法解析指定的连接标识符
查看>>
读书印记 - 《菊与刀》
查看>>
第一个小demo: spring boot + mybatis + thymeleaf
查看>>