Android使用FastJson
FastJson是阿里巴巴开源的一个Json处理工具包,包括“序列化”和“反序列化”两部分。
测试表明,fastjson具有极快的性能,超越任其他的Java Json parser。包括自称最快的JackJson,功能强大,完全支持Java Bean、集合、Map、日期、Enum,支持范型,支持自省;无依赖,能够直接运行在Java SE 5.0以上版本;支持Android;开源 (Apache 2.0)
FastJson 说明:https://github.com/Alibaba/fastjson/wiki/%E9%A6%96%E9%A1%B5
注意:FastJson有分Java版本和Android版本的,不要弄错了,很多博客上都没提及这一点
android FastJson jar 下载地址:https://repo1.maven.org/maven2/com/alibaba/fastjson/1.2.11/fastjson-1.2.11.jar
将该jar包拷贝到项目的libs目录下,android会自动引用
FastJson中的常用方法:
public static final Object parse(String text); // 把JSON文本parse为JSONObject或者JSONArray
public static final JSONObject parseObject(String text); // 把JSON文本parse成JSONObject
public static final T parseObject(String text, Class clazz); // 把JSON文本parse为JavaBean
public static final JSONArray parseArray(String text); // 把JSON文本parse成JSONArray
public static final List parseArray(String text, Class clazz); //把JSON文本parse成JavaBean集合
public static final String toJSONString(Object object); // 将JavaBean序列化为JSON文本
public static final String toJSONString(Object object, boolean prettyFormat); // 将JavaBean序列化为带格式的JSON文本
public static final Object toJSON(Object javaObject); 将JavaBean转换为JSONObject或者JSONArray。
1、Person.java
class Person {//姓名private String name = null;//年龄private int age = 0;//是否为男性private boolean isMale = true;//孩子的姓名private List childName = new ArrayList();public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public boolean isMale() {return isMale;}public void setMale(boolean isMale) {this.isMale = isMale;}public List getChildName() {return childName;}public void setChildName(List childName) {this.childName = childName;}public void init() {name = "Bob";age = 25;isMale = true;childName.add("Tina");childName.add("Linda");childName.add("Tom");}@Overridepublic String toString() {String str = "姓名: " + name + ", 年龄: " + age + ", 性别: " + (isMale?"男性":"女性") + "\n";if(childName != null && childName.size() != 0) {str = str + "孩子个数: " + childName.size() + "\n";for(int i=0;i
2、activity_fastjson.xml 就一个TextView用来显示结果 3、FastjsonActivity.java
public class FastjsonActivity extends Activity {public TextView textView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_fastjson);textView = (TextView) findViewById(R.id.textview);Person person = new Person();person.init();//(1)JSONObject personObject = (JSONObject) JSON.toJSON(person);addText(personObject.toString());//(2)String personStr = JSON.toJSONString(person);addText(personStr);//(3)person = JSON.parseObject(personStr, Person.class);addText(person.toString());//(4)String jsonArrStr = "[\"a\", \"b\", \"c\", \"d\"]";JSONArray jsonArr = JSON.parseArray(jsonArrStr);addText(jsonArr.toString());//(5)List strlist = JSON.parseArray(jsonArrStr, String.class);addText(strlist.toString());}public void addText(String str) {textView.setText(textView.getText().toString() + str + "\n");}}
输出结果: {“childName”:["Tina","Linda","Tom"],"name":"bob","age":25,"isMale":true}
{"age":25,"childName":["Tina","Linda","Tom"],"isMale":true,"name":"Bob"}
姓名: Bob, 年龄: 25, 性别: 男性
孩子个数: 3
0. Tina
1. Linda
2. Tom
["a","b","c","d"]
[a,b,c,d]
更多相关文章
- android 手势屏幕平移图片转换效果(也可以平移文本)
- Android UI 与文本相关的控件
- 开源的Android富文本编辑器
- Android——文本类控件
- TextView如何高亮显示文本
- android最简单的发送文本短信的demo
- Android 获取联系人姓名与电话号码
- Android 获取Contacts 联系人 姓名 号码 照片信息
- Android滚动显示TXT中文文本