Json解析库
来源:互联网 发布:spss数据分析 pdf 编辑:程序博客网 时间:2024/05/18 02:52
Json(JavaScript Object Notation)是一种轻量级的数据交换格式。用于数据传输,通用于PHP,Java,C++,C#,Python等编程语言数据交换传输。
Google为我们提供了Gson解析库可以将一个JSON字符串转成一个Java对象,或者反过来。将Gson.jar包放在libs中,Add as Library,这里还用到了Volley库进行网络通信。示例:
1 package com.zhang.gsondemo.bean; 2 3 4 5 import java.util.ArrayList; 6 7 /** 8 * Created by Mr.Z on 2016/10/7 0007. 9 */10 11 public class Book {12 private String title;13 private String publisher;14 private String summary;15 private ArrayList<Tag> tags;16 17 public String getTitle() {18 return title;19 }20 21 public void setTitle(String title) {22 this.title = title;23 }24 25 public String getPublisher() {26 return publisher;27 }28 29 public void setPublisher(String publisher) {30 this.publisher = publisher;31 }32 33 public String getSummary() {34 return summary;35 }36 37 public void setSummary(String summary) {38 this.summary = summary;39 }40 41 public ArrayList<Tag> getTags() {42 return tags;43 }44 45 public void setTags(ArrayList<Tag> tags) {46 this.tags = tags;47 }48 }
1 package com.zhang.gsondemo.bean; 2 3 /** 4 * Created by Mr.Z on 2016/10/7 0007. 5 */ 6 7 public class Tag { 8 private String count; 9 private String name;10 private String title;11 12 public String getCount() {13 return count;14 }15 16 public void setCount(String count) {17 this.count = count;18 }19 20 public String getName() {21 return name;22 }23 24 public void setName(String name) {25 this.name = name;26 }27 28 public String getTitle() {29 return title;30 }31 32 public void setTitle(String title) {33 this.title = title;34 }35 }
1 package com.zhang.gsondemo; 2 3 import android.os.Bundle; 4 import android.support.v7.app.AppCompatActivity; 5 import android.util.Log; 6 7 import com.android.volley.Response; 8 import com.android.volley.VolleyError; 9 import com.android.volley.toolbox.StringRequest;10 import com.android.volley.toolbox.Volley;11 import com.google.gson.Gson;12 import com.zhang.gsondemo.bean.Book;13 import com.zhang.gsondemo.bean.Tag;14 15 16 import java.util.ArrayList;17 18 public class MainActivity extends AppCompatActivity {19 20 private String url = "https://api.douban.com/v2/book/1220562";21 22 @Override23 protected void onCreate(Bundle savedInstanceState) {24 super.onCreate(savedInstanceState);25 setContentView(R.layout.activity_main);26 27 getData();28 }29 30 private void getData() {31 StringRequest request = new StringRequest(url,32 new Response.Listener<String>() {33 @Override34 public void onResponse(String s) {35 Log.i("info", s);36 dealData(s);37 }38 },39 new Response.ErrorListener() {40 @Override41 public void onErrorResponse(VolleyError volleyError) {42 43 }44 });45 46 Volley.newRequestQueue(this).add(request);47 }48 49 private void dealData(String s) {50 Gson gson = new Gson();51 Book book = gson.fromJson(s, Book.class);52 Log.i("info", book.getTitle() + "----" + book.getPublisher() + "----" + book.getTags().size());53 ArrayList<com.zhang.gsondemo.bean.Tag> tags = book.getTags();54 for (com.zhang.gsondemo.bean.Tag tag:tags){55 System.out.println(tag.getTitle());56 }57 58 59 }60 61 62 }
阿里巴巴的工程师封装了一个Fast-json的解析库,用起来也很方便 ,官方介绍比其他任何基于Java的解析器和生成器更快,更强大。Java对象同上:
1 package com.zhang.fastjsondemo; 2 3 import android.os.Bundle; 4 import android.support.v7.app.AppCompatActivity; 5 import android.util.Log; 6 7 import com.alibaba.fastjson.JSON; 8 import com.android.volley.Response; 9 import com.android.volley.VolleyError;10 import com.android.volley.toolbox.StringRequest;11 import com.android.volley.toolbox.Volley;12 import com.zhang.fastjsondemo.bean.Book;13 14 public class MainActivity extends AppCompatActivity {15 16 private String url = "https://api.douban.com/v2/book/1220562";17 18 @Override19 protected void onCreate(Bundle savedInstanceState) {20 super.onCreate(savedInstanceState);21 setContentView(R.layout.activity_main);22 23 getData();24 }25 26 private void getData() {27 StringRequest request = new StringRequest(url,28 new Response.Listener<String>() {29 @Override30 public void onResponse(String s) {31 Log.i("info", s);32 dealData(s);33 }34 },35 new Response.ErrorListener() {36 @Override37 public void onErrorResponse(VolleyError volleyError) {38 39 }40 });41 42 Volley.newRequestQueue(this).add(request);43 }44 45 private void dealData(String s) {46 Book book = JSON.parseObject(s, Book.class);47 Log.i("info", book.getTitle() + "----" + book.getPublisher() + "----" + book.getTags().size());48 49 //50 // //读取多条json51 // List<Book> books = JSON.parseObject(s, new TypeReference<List<Book>>() {52 // });53 //54 // //集合转化成json55 // Book book1 = new Book();56 // book1.setTitle("biaoti1");57 // Book book2 = new Book();58 // book2.setTitle("biaoti2");59 // Book book3 = new Book();60 // book3.setTitle("biaoti3");61 //62 // List<Book> list = new ArrayList<Book>();63 // list.add(book1);64 // list.add(book2);65 // list.add(book3);66 // JSON.toJSON(list);67 }68 }
0 0
- JSON库解析json文件
- android:json解析库
- IOS解析JSON库
- android:json解析库
- Unity3d Json解析库
- boost库 json解析
- 解析json的库
- Json解析库
- 【JSON解析】JSON解析
- JSON 解析 - java库org.json简介
- JSON解析 - java库org.json使用
- Json解析之Gson库
- 自实现json解析库
- C++解析JSON jsoncpp库
- go语言解析json库
- 我的JSON解析库
- Json解析之Gson库
- json解析库的使用
- C++ 基础知识
- oracle 实现分组结果集整合到一行多列显示
- Cocos2d-x基础知识
- Cocos2d-x 物理引擎及碰撞
- nodejs搭建路由
- Json解析库
- linux系统操作
- iOS-设置按钮高亮的背景颜色
- 字符串与数组
- Android 非空格式验证框架---Android Validation
- Android 图片相关处理库ImageLoader、Picasso、PhotoView、GifView
- Gradle for Android 第五篇( 多模块构建 )
- 如何获取一篇文献
- Android引导页面