Android最全Android上基于JSON的数据交互应用(1),2024年最新面试篇四字成语

最后我还整理了很多Android中高级的PDF技术文档。以及一些大厂面试真题解析文档。

image

Android高级架构师之路很漫长,一起共勉吧!

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

get(): 在确定数值存在的条件下使用,否则当无法检索到相关Key时,将会抛出一个Exception信息。

opt(): 这个方法相对比较灵活,当无法获取所指定数值时,将会返回一个默认数值,并不会抛出异常。

JSONArray:


它代表一组有序的数值。将其转换为String输出(toString)所表现的形式是用方括号包裹,数值以逗号”,”分隔(例如:[value1,value2,value3],大家可以亲自利用简短的代码更加直观的了解其格式)。这个类的内部同样具有查询行为,get()和opt()两种方法都可以通过index索引返回指定的数值,put()方法用来添加或者替换数值。

例子1: Array里面包含对象(object)

[ {“id”:1,“name”:“小猪” ,"age”:22} ,{“id”:2,“name”:“小猫”,"age”:23},  …]

例子2:同样对象(object)中可以包含Array

(1)一个对象包含1个数组,2个子对象

{“root”:[{“id”:“001”,“name”:“小猪”},{“id”:“002”,“name”:“小猫”},{“id”:“003”,“name”:“小狗”}],

“total”:3,

“success”:true

}

(2)也可以对象嵌套子对象,子对象再嵌套数组

{“calendar”:

{“calendarlist”:

[

{“id”:“001”,“name”:“小猪”},

{“id”:“002”,“name”:“小猫”}

]

}

}

同样这个类的value类型可以包括:Boolean、JSONArray、JSONObject、Number、String或者默认值JSONObject.NULL object。

JSONStringer:


根据官方的解释,这个类可以帮助快速和便捷的创建JSON text。其最大的优点在于可以减少由于格式的错误导致程序异常,引用这个类可以自动严格按照JSON语法规则(syntax rules)创建JSON text。每个JSONStringer实体只能对应创建一个JSON text。

根据下边的实例来了解其它相关信息:

string myString = new JSONStringer().object()

.key(“AR”).value(“www.Androidres.com!”)

.endObject()

.toString();

结果是一组标准格式的JSON text:{”AR”:”www.Androidres.com!”}

其中的.object()和.endObject()必须同时使用,是为了按照Object标准给数值添加边界。同样,针对数组也有一组标准的方法来生成边界.array()和.endArray()。

JSONTokener:


这个是系统为JSONObject和JSONArray构造器解析JSON source string的类,它可以从source string中提取数值信息。

JSONException:


是JSON.org类抛出的异常信息

下面引用一个完整的应用实例:

应用JSONObject存储Map类型数值:

public class HelloJSONActivity extends Activity {

/** Called when the activity is first created. */

Button b_parse;

TextView tv;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

tv= (TextView)findViewById(R.id.tv);

b_parse = (Button)findViewById(R.id.parse_json);

b_parse.setOnClickListener(new ParseJSONListener());

}

class ParseJSONListener implements OnClickListener{

@Override

public void onClick(View v) {

Map<String, Map<String, String>> maps = new HashMap<String, Map<String, String>>();

Map<String, String> map = new HashMap<String, String>();

map.put(“0001”, “a”);

map.put(“0002”, “b”);

map.put(“0003”, “c”);

Map<String, String> map2 = new HashMap<String, String>();

map2.put(“1001”, “aa”);

map2.put(“1002”, “bb”);

map2.put(“1003”, “cc”);

maps.put(“1”, map);

maps.put(“2”, map2);

JSONObject jsonObjec = getJSON(maps);

tv.setText(jsonObjec.toString());

System.out.println(jsonObjec.toString());

}

}

public static JSONObject getJSON(Map map) {

【附】相关架构及资料

往期Android高级架构资料、源码、笔记、视频。高级UI、性能优化、架构师课程、NDK、混合式开发(ReactNative+Weex)微信小程序、Flutter全方面的Android进阶实践技术,群内还有技术大牛一起讨论交流解决问题。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

大牛一起讨论交流解决问题。**

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 13
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值