导航:首页 > 操作系统 > android开发json

android开发json

发布时间:2022-12-25 21:57:22

android开发中怎样使用Json

android3.0以后有json解析包JsonReader。
还是建议用gson.jar。

㈡ Android开发中应该使用哪一种主流json框架

Gson、FastJson、Jackson每种都有自己的优劣势。
Gson、FastJson、Jackson综合对比

三种框架在实现上都使用了反射机制;

三种框架目前仍然在维护,所以从这一点来讲,使用任何一个框架都是靠谱的,因为有人在维护,反馈问题可以改,遇到问题也可以问;

三种框架FastJson的包最小(为了方便对比大小,均是对jar包做的统计),只有196K,其次是Gson的227K,Jackson会大很多,超过了1M;

三种框架在1000倍数据量级以内效率都很高、占用内存也低,效率最高的是FastJson,内存占用都差不多;1000倍数据量级以上内存占用会很大,并且平均耗时会超过1S,FastJson表现中规中矩;

json解析、转换是一件很耗CPU的工作;

三种框架在bean转换为json时都有很好的易用性,但在json解析的实现上,FastJson使用起来最简单,其次是Gson;

FastJson对bean有要求,必须要有默认的构造函数,如果bean类没有默认的构造函数并且是无法修改的(比如拿不到源码),相比于另外两个框架会有弱势。

㈢ Android开发中为什么很少使用JSON存储数据

是可以用JSON存储数据对象的,而且也是Google推荐的,可以取代以实现Serializable来存储对象的方法。下面是使用JSON存储数据的原因。

Android开发中,涉及到对象存储,通常的做法是直接实现`Serializable`。有关这个接口,它保证了实现该接口的类的对象能够被`ObjectOutput/InputStream`直接输入输出,即序列化。这很方便,但是也很不好。

提到‘序列化’,大多数人都想到`Serializable`,而实际上‘序列化’的只是指“将对象的状态信息转换为可以存储或传输的形式的过程”,java的`Serializabe`是字节序列化的一种。

`Serialziable`的缺点之一是,实现了该接口的类将失去灵活性。这一点《Effective Java》第74条也指出了,实现了这个`Serializable`的类将会依赖这个类的内部演化,根源在于UID(Serial version UID)。如果你没有指定UID,那么每次这个类被序列化时都会根据这个类的当前状态生成一个UID。想象这么一种场景:这个类已经被导出了,比如发给其他公司或部门使用了,然后你又修改了这个类,那么当你再将这个类发布时,由于UID不同,其他公司或部门的程序员将可能得到一个“InvalidClassException”。

这种情况的根本原因是因为你不能控制序列化的实现,你控制不了UID的生成过程。这就需要一个自定义的序列化形式。在Android中,Google推荐JSON序列化。而且Android程序员也可以使用Gson等工具来进行序列化和反序列化。

和`Serializable`的字节序列化不同,JSON序列化是字符序列化。

此外,`Serializable`只适合存储对象。由于在传输时`Serializalbe`要做大量IO,Android提供了`Parcelable`。

最后,题主不应该把数据库和JSON,XML比较,如果要比,也只能把数据库和文件存储比。数据库适合存储数量大,关系复杂的数据,这样管理,查阅就很方便。与此相对文件存储适合数量小,关系简单的数据。

㈣ JSON的读取和存放,Android开发!

  1. 用HTTPConnection(或HTTPClient)通过Path(或URL)获取json.以Stream保存在String中.

  2. 使用JSONObject通过String构造JSONObject对象.

  3. 在JSONObject中可以以(KEY,VALUES)方式获取值,JSONObject可以生成JSONArray,JSONArray也可解析出JSONObject.

  4. 最后,灵活运用.

㈤ Android开发 解析JSON数据格式 如何去掉JSON数

Android开发中如何解析JSON数据格式?

1.JSON解析
(1).解析Object之一:

1 {"url":"http://www。ideaex。net"}

解析方法:

1 JSONObject demoJson = new JSONObject(jsonString);

2 String url = demoJson.getString("url");

(2).解析Object之二:

1 {"name":"android","name":"iphone"}

解析方法:

1 JSONObject demoJson = new JSONObject(jsonString);

2 String name = demoJson.getString("name");

3 String version = demoJson.getString("version");

4 System.out.println("name:"+name+",version:"+version);

(3).解析Array之一:

1 {"number":[1,2,3]}

解析方法:

1 JSONObject demoJson = new JSONObject(jsonString);

2 JSONArray numberList = demoJson.getJSONArray("number");

3 for(int i=0; i<numberList.length(); i++){

4 //因为数组中的类型为int,所以为getInt,其他getString,getLong同用

5 System.out.println(numberList.getInt(i));

6 }

(4).解析Array之二:

1 {"number":[[1],[2],[3]]}

解析方法:

1 //嵌套数组遍历

2 JSONObject demoJson = new JSONObject(jsonString);

3 JSONArray numberList = demoJson.getJSONArray("number");

4 for(int i=0; i<numberList.length(); i++){

5 //获取数组中的数组

6 System.out.println(numberList.getJSONArray(i).getInt(0));

7 }

(5).解析Object和Array:

1 {"mobile":[{"name":"android"},{"name":"iphone"}]}

解析方法:

1 JSONObject demoJson = new JSONObject(jsonString);

2 JSONArray numberList = demoJson.getJSONArray("mobile");

3 for(int i=0; i<numberList.length(); i++){

4 System.out.println(numberList.getJSONObject(i).getString("name"));

5 }

所以,我们发现get后面接着的是你想要的得到的结果的类型:getType,这个对理解很有帮助。
(6).使用optType:
上面的例子,使用getType在碰到查找不到节点的时候,会抛出异常。
如果使用optType,找不到节点,则返回null或者默认值。

1 //无url节点,抛出异常

2 String url = demoJson.getString("url");

3 //无url节点,返回空,如果为基本类型,则返回默认值

4 String url = demoJson.optString("url");

(7).UTF-8的BOM头导致解析JSON异常的问题
到json文件保存为utf-8的时候,在windows平台下,会产生bom头"EF BB EF"字节在文本的最前面(需要用十六进制工具打开才能看的到)。
有两种解决方法:
a.使用UltraEdit打开json文件,另存为的时候,选择格式UTF-8,无BOM头,如果还不行,在用记事本打开,另存为UTF-8下,多试几次就可以了。
b.使用代码处理,截取json主体内容:

1 String jsonString = getJsonString();

2 jsonString = jsonString.substring(jsonString.indexOf("{"),jsonString.lastIndexOf("}")+1);

2.JSON必知
(1).JSON是一种轻量级的数据交换格式
(2).JSON基于两种数据结构:Object和Array。其中Object是“名称/值”对的集合。
(3).对象:大括号,每一组string-value结合以","分隔,string和value以冒号分隔。

(4).数组:

(5).string由双引号包围的任意数量Unicode字符的集合,使用反斜线转义。

(6).value可以是双引号括起来的字符串(string)、数值(number)、true、false、 null、对象(object)或者数组(array)。这些结构可以嵌套。

(7).空白可以加入到任何符号之间,包括空格,tab,回车,换行等。
(8).举例:
a.Object实例:

01 {

02 "Image": {

03 "Width": 800,

04 "Height": 600,

05 "Title": "View from 15th Floor",

06 "Thumbnail": {

07 "Url": "http://www.example.com/image/481989943",

08 "Height": 125,

09 "Width": "100"

10 },

11 "IDs": [116, 943, 234, 38793]

12 }

13 }

b.Array实例:

01 [

02 {

03 "precision": "zip",

04 "Latitude": 37.7668,

05 "Longitude": -122.3959,

06 "Address": "",

07 "City": "SAN FRANCISCO",

08 "State": "CA",

09 "Zip": "94107",

10 "Country": "US"

11 },

12 {

13 "precision": "zip",

14 "Latitude": 37.371991,

15 "Longitude": -122.026020,

16 "Address": "",

17 "City": "SUNNYVALE",

18 "State": "CA",

19 "Zip": "94085",

20 "Country": "US"

21 }

22 ]

㈥ Android 如何引用本地json文件

有时候遇到要一些模拟数据的时候,要么写个List<T>,要么写死.

然后数据比较多的时候可以引用本地资源文件,记录下如何使用本地json文件

<1>在java同级目录下创建"assets"资源文件夹

<2>编辑json文本内容
至于json文件夹内容 就自定义了,想要什么内容写什么,对于一个做项目多了的开发者而言 json数据是熟悉到不能再熟悉的了
以下是我在淘宝一个个复制过来自己拼装的一些商品数据

不需要加任何标识,只需要标准的json数据格式就可以了

<3>引用和json解析的工具类,解析用的 Gson也是经常用到的

<4>最后在需要的地方引用,"ExchangeBean"是根据json内容写的一个模型,用于接收存放数据

有时间再补上demo,下面是效果图:

㈦ Android开发中应该使用哪一种主流json框架

Android开发中应该使用的主流json框架有三种,分别是gson、fastjson、jackson这三种。
各自的区别:
gson:谷歌开发的gson很受国内外人士常使用,不过使用率低于fastjson,耗费内存多。
fastjson:框架的fastjson是最小的,属于老牌并且国内开发者经常使用,fastjson必须有默认的构造函数。
jackson:jackson属于小众开发者使用的,jackson的框架包是最大的。

㈧ 在Android开发环境中,麻烦帮我解析一下这段JSON数据,谢谢!

写在Android的Activity中的代码:

importandroid.app.Activity;
importandroid.os.Bundle;
importjava.util.Iterator;
importorg.json.JSONObject;

{
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

try{
Stringdata="{"DbNo":"db001","code":0,"fileBackup":"http://192.168.4.178:8888/","filePrior":"http://192.168.4.178:8888/","fileServerIp":"192.168.4.178","fileServerIpBackUp":"192.168.4.178","fileServerPort":"8888","fileServerPortBackUp":"8888","msg":"","msgserverIpBackUp":"192.168.4.178","msgserverPortBackUp":"8100","port":"65531","priorIP":"192.168.4.178","userPass":"|2128"}";
JSONObjectobj=newJSONObject(data);
Iterator<?>it=obj.keys();
Stringkey;
while(it.hasNext()){
key=it.next().toString();
System.out.println(key+":"+obj.getString(key));
}
}
catch(Exceptione){
System.out.println(e.toString());
}
}
}


测试后,在Logcat中的输出:

阅读全文

与android开发json相关的资料

热点内容
单片机的原理概述 浏览:506
火控pdf 浏览:267
如何复制云服务器centos环境 浏览:984
债权pdf 浏览:299
红色番字的app怎么下载 浏览:876
云服务器流程教课 浏览:702
中国农业银行app怎么没有网 浏览:997
几率表算法 浏览:902
程序员理工科 浏览:708
企业邮箱登录收件服务器地址 浏览:558
计算机思维与算法设计的重要性 浏览:664
linux刷新磁盘命令 浏览:76
我的世界如何查看服务器种子pc 浏览:284
linuxlamp编译安装 浏览:609
枚举算法ppt 浏览:184
cmd查看进程命令 浏览:956
手机内怎么删除APP 浏览:834
鱼群和鸟群算法区别 浏览:93
pdf尺寸设置 浏览:211
android访问本地服务器 浏览:512