国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

Json 數(shù)據(jù)解析

2019-11-09 16:06:14
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

關(guān)于普通Json的大部分解析方法。此博客用于個(gè)人復(fù)習(xí),歡迎批評(píng)

———-原生json解析—-

String json1 = "{/"name/":/"張三/",/"age/":20,/"sex/":/"男/"}";String json3 = "{/"bookname/":/"java速成/", /"——解析Object—解析完成后放入實(shí)體類中—-

String name = jsonobj.getString("name");int age = jsonobj.getInt("age");String sex = jsonobj.getString("sex");person.setName(name);person.setAge(age);person.setSex(sex);JSONObject jsonobj1 = new JSONObject(json3);String bookname= jsonobj1.getString("bookname");double price = jsonobj1.getDouble("price");books.setBookname(bookname);books.setPrice(price);person.setBooks(books);System.out.println(books);System.out.println(person);/*String json2 = "[/"蘋果/",/"栗子/",/"西瓜/"]";

——-解析JsonArray—

JSONArray jsonarray = new JSONArray(json2);List<String> list = new ArrayList<>();for(int i = 0; i<jsonarray.length();i++){ String str = jsonarray.getString(i); list.add(str);}System.out.println(list);*/

————–JsonObject 和JsonArray 的結(jié)合解析

String json4 = "{/"name/":/"李雷/", /"age/":16, /"books/":[{/"bookname/":/"Java入門到放棄/", /"price/":18.9}, {/"bookname/":/"C++領(lǐng)進(jìn)門,從后門跑了/", /"price/":18.9}, {/"bookname/":/"android這個(gè)坑有多深/", /"price/":18.9}]}";JSONObject jsonObject = new JSONObject(json4);Student student = new Student();String name = jsonObject.getString("name");int age = jsonObject.getInt("age");List<Book> book = new ArrayList<>();JSONArray jsonArray = jsonObject.getJSONArray("books");for(int i = 0; i<jsonArray.length();i++){ Book books = new Book(); JSONObject jsonObject2 = jsonArray.getJSONObject(i); String bookname = jsonObject2.getString("bookname"); double pirce = jsonObject2.getDouble("price"); books.setBookname(bookname); books.setPicer(pirce); book.add(books);}student.setName(name);student.setAge(age);student.setList(book);System.out.println(student);

} ———————–下載Url到String—從接口中下載數(shù)據(jù)存到一個(gè)String類型的變量中

// 解析Url為Stringpublic static String getJSONByURL(String urlStr) {InputStream in = null;ByteArrayOutputStream out = null;try { URL url = new URL(urlStr); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); in = conn.getInputStream(); out = new ByteArrayOutputStream(); byte[] buffer = new byte[1024]; int len = 0; while ((len = in.read(buffer)) != -1) { out.write(buffer, 0, len); } byte[] bs = out.toByteArray(); return new String(bs);} catch (Exception e) { e.printStackTrace();} finally { if (in != null) { try { in.close(); } catch (IOException e) { e.printStackTrace(); } }}return null;

——————用Gson解析 首先要?jiǎng)?chuàng)建一個(gè)實(shí)體類,按照接口里面的格式來(lái)創(chuàng)建

String json1 = "{/"name/":/"張三/",/"age/":20,/"sex/":/"男/"}";//PersonString json2 = "[/"蘋果/", /"梨子/", /"香蕉/"]";//List<String>String json3 = "{/"bookname/":/"Java速成/", /"price/":18.6}";//解析json1Person ps = new Gson().fromJson(json1, Person.class);System.out.println(ps);//解析json2TypeToken<List<String>> tt = new TypeToken<List<String>>(){};List<String> list = new Gson().fromJson(json2, tt.getType());System.out.println(list);//解析json3Book book = new Gson().fromJson(json3, Book.class);System.out.println(book);String json4 = "{/"name/":/"李雷/", /"age/":16, /"books/":[{/"bookname/":/"Java入門到放棄/", /"price/":18.9}, {/"bookname/":/"C++領(lǐng)進(jìn)門,從后門跑了/", /"price/":18.9}, {/"bookname/":/"android這個(gè)坑有多深/", /"price/":18.9}]}";Student studnent = new Gson().fromJson(json4, Student.class);System.out.println(studnent);

——-一個(gè)Gson 和json結(jié)合的例子:荔枝新聞解析 ——–荔枝新聞的接口,首先要用URl下載這個(gè)接口的數(shù)據(jù)到String 的json中

public static final String URL = "http://litchiapi.jstv.com/api/GetFeeds?column=0&PageSize=10&pageIndex=1&val=100511D3BE5301280E0992C73A9DEC41";public static void main(String[] args) throws JSONException {//下載JSONString json = HttpUtil.getJSONByURL(URL);//解析JSON --> List<New>List<NewsEntity> newsList = new ArrayList<>();JSONObject jsonObject = new JSONObject(json);String isok = jsonObject.getString("status");if(isok.equals("ok")){ //數(shù)據(jù)請(qǐng)求成功 JSONArray newsJsonArray = jsonObject.getJSONObject("paramz").getJSONArray("feeds");

———先用Json解析,下面再用Gson解析—–實(shí)體類一定要按照對(duì)應(yīng)格式創(chuàng)建

for(int i = 0; i < newsJsonArray.length(); i++){ NewsEntity newsEntity = new NewsEntity(); JSONObject newObject = newsJsonArray.getJSONObject(i); //解析ID newsEntity.setId(newObject.getInt("id")); //解析標(biāo)題 String subject = newObject.getJSONObject("data").getString("subject"); newsEntity.setSubject(subject); //解析簡(jiǎn)介 String summary = newObject.getJSONObject("data").getString("summary"); newsEntity.setSummary(summary); //解析圖片 String cover = newObject.getJSONObject("data").getString("cover"); newsEntity.setCover(cover); //解析時(shí)間 String changed = newObject.getJSONObject("data").getString("changed"); newsEntity.setChanged(changed); newsList.add(newsEntity); }

—–下面是荔枝新聞的實(shí)體類,按照對(duì)應(yīng)格式,然后選取需要的數(shù)據(jù)來(lái)創(chuàng)建

private int id;// 新聞idprivate String subject;// 新聞標(biāo)題private String summary;// 新聞簡(jiǎn)介private String cover;// 新聞圖片urlprivate String changed;// 新聞的最后修改時(shí)間public int getId() {return id;}public void setId(int id) {this.id = id;}public String getSubject() {return subject;}public void setSubject(String subject) {this.subject = subject;}public String getSummary() {return summary;}public void setSummary(String summary) {this.summary = summary;}public String getCover() {return cover;}public void setCover(String cover) {this.cover = cover;}public String getChanged() {return changed;}public void setChanged(String changed) {this.changed = changed;}@Overridepublic String toString() {return "NewsEntity [id=" + id + ", subject=" + subject + ", summary=" + summary + ", cover=" + cover + ", changed=" + changed + "]";}
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 威远县| 漠河县| 五原县| 泸水县| 齐河县| 东莞市| 潜江市| 富锦市| 荔浦县| 广平县| 肇庆市| 宜宾县| 华坪县| 台州市| 温宿县| 河西区| 昆山市| 塔河县| 临猗县| 神池县| 晋宁县| 宣威市| 东光县| 会宁县| 靖边县| 福安市| 饶阳县| 密山市| 广汉市| 阜城县| 江源县| 渑池县| 中卫市| 彭水| 奉贤区| 乐东| 信阳市| 东丽区| 信丰县| 碌曲县| 日照市|