ContentProvider(内容提供者)是Android中的四大组件之一。主要用于对外共享数据,也就是通过ContentProvider把应用中的数据共享给其他应用访问,其他应用可以通过ContentProvider对指定应用中的数据进行操作。ContentProvider分为系统的和自定义的,系统的也就是例如联系人,图片等数据。
以下这段是Google Doc中对ContentProvider的大致概述。
1.ContentProvider
2.ContentResolver ContentResolver提供的方法和ContentProvider提供的方法对应的有以下几个方法。 public Uri insert(Uri uri, ContentValues values) 用于添加数据到指定Uri的ContentProvider中。 public int delete(Uri uri, String selection, String[] selectionArgs) 用于从指定Uri的ContentProvider中删除数据。 public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) 用于更新指定Uri的ContentProvider中的数据。 public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) 用于查询指定Uri的ContentProvider。
3.Uri 一、什么是JSON?JSON是一种取代XML的数据结构,和xml相比,它更小巧但描述能力却不差,由于它的小巧所以网络传输数据将减少更多流量从而加快速度。 JSON就是一串字符串 只不过元素会使用特定的符号标注。 {} 双括号表示对象 [] 中括号表示数组 "" 双引号内是属性或值 : 冒号表示后者是前者的值(这个值可以是字符串、数字、也可以是另一个数组或对象) 所以 {"name": "Michael"} 可以理解为是一个包含name为Michael的对象 而[{"name": "Michael"},{"name": "Jerry"}]就表示包含两个对象的数组 当然了,你也可以使用{"name":["Michael","Jerry"]}来简化上面一部,这是一个拥有一个name数组的对象 二、JSON解析之传统的JSON解析1、生成JSOn字符串
2、解析JSON字符串分为以下三种情况,一个JavaBean,一个List数组,一个嵌套Map的List数组:
三、JSON解析之GSON1、生成JSON字符串
二、解析JSON
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | import java.util.ArrayList; import java.util.List; import java.util.Map; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.TypeReference; public class JsonTool { public static <t> T getPerson(String jsonstring, Class<t> cls) { T t = null ; try { t = JSON.parseObject(jsonstring, cls); } catch (Exception e) { // TODO: handle exception } return t; } public static <t> List<t> getPersonList(String jsonstring, Class<t> cls) { List<t> list = new ArrayList<t>(); try { list = JSON.parseArray(jsonstring, cls); } catch (Exception e) { // TODO: handle exception } return list; } public static <t> List<map<string, object= "" >> getPersonListMap1( String jsonstring) { List<map<string, object= "" >> list = new ArrayList<map<string, object= "" >>(); try { list = JSON.parseObject(jsonstring, new TypeReference<list<map<string, object= "" >>>() { }.getType()); } catch (Exception e) { // TODO: handle exception } return list; } }</list<map<string,></map<string,></map<string,></map<string,></t></t></t></t></t></t></t></t> |
JSON对于移动设备来说,尤其对于网络环境较差和流量限制的情况下,相对于XML格式的数据传输会更节省流量,传输效率更高。在这三种解析方式中FastJson是效率最高的,推荐使用。
|
来自: windli笔记 > 《Android课堂笔记》