安卓学习笔记之原生Json
2017-02-25 21:19
155 查看
什么是json?
json全称就是JavaScript Object Notation,是一种轻量级的数据交换格式,以一种键值(key,value)的形式存在。那安卓上是怎么实现创建和读取的呢?下面来学习学习。
首先是创建json格式,一般我们都会用到JsonObeject这个类,创建其对象。
那如何通过网络读取json数据呢?我们贴上代码。
json全称就是JavaScript Object Notation,是一种轻量级的数据交换格式,以一种键值(key,value)的形式存在。那安卓上是怎么实现创建和读取的呢?下面来学习学习。
首先是创建json格式,一般我们都会用到JsonObeject这个类,创建其对象。
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); textView= (TextView) findViewById(R.id.text1); try { JSONObject root = new JSONObject(); JSONObject jsonObject1 = new JSONObject(); JSONObject jsonObject2 = new JSONObject(); JSONArray jsonArray = new JSONArray(); //一个json对象 jsonObject1.put("name","xixi"); jsonObject1.put("age",18); jsonObject1.put("sex","male"); //第二个json对象 jsonObject2.put("name","haha"); jsonObject2.put("age",19); jsonObject2.put("sex","male"); //json数组 jsonArray.put(jsonObject1); jsonArray.put(jsonObject2); //将json数组添加到root这个jsonObject这个类的对象里去,并指定它的键为handsome root.put("handsome",jsonArray); System.out.println(root.toString()); } catch (JSONException e) { e.printStackTrace(); } }这样就创建了json格式,我们通过控制台看到打印的内容。
那如何通过网络读取json数据呢?我们贴上代码。
//在安卓3.0之后google要求网络请求要在子线程中进行 new AsyncTask<Void, Void, String>() { @Override protected String doInBackground(Void... params) { try { //输入流,并指定其url地址,打开流 InputStream in = new URL("http://aqicn.org/publishingdata/json").openStream(); //通过BufferedReader来入去inputStream,其中inputStreamReader来封装inputStream BufferedReader br = new BufferedReader(new InputStreamReader(in)); String line; StringBuffer content = new StringBuffer(); while ((line = br.readLine()) != null) { content.append(line); } //读取完成之后关闭BufferedReader br.close(); return content.toString(); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return null; } //当网络操作成功连接之后调用这个方法 @Override protected void onPostExecute(String s) { //s为从网络读取的数据 if (s!=null){ try { //创建一个数组对象,放入s内容 JSONArray jo= new JSONArray(s); JSONObject jso = jo.getJSONObject(0); //从网络中取到键为pollutants这个键然后读取其内容 JSONArray pollutants = jso.getJSONArray("pollutants"); //控制台输出 System.out.println("cityName: "+jso.getString("cityName")); } catch (JSONException e) { e.printStackTrace(); } } } }.execute();如图所示,我们已经顺利读取了网络的数据。
相关文章推荐
- js原生JSON学习笔记
- 安卓学习笔记-JSON数据解析
- 【JavaEE学习笔记】JSON解析_原生JSON,GSON,FastJSON
- 安卓学习笔记之json
- 安卓学习笔记---解决在在Edittext输入的时候,输入框被软键盘遮挡部分内容的问题(一)
- json学习笔记------
- 安卓逆向学习笔记 (3)- 使用IDA Pro静态分析so文件
- [安卓学习笔记]----意图
- 安卓学习笔记---自定义ImageView实现图片圆形 ,椭圆和矩形圆角显示(矩形圆角加边框)
- 安卓学习笔记---解决在在Edittext输入的时候,输入框被软键盘遮挡部分内容的问题(二)
- 小程序学习笔记二:页面文件详解之 .json文件
- 学习笔记--Ajax:JSON格式返回数据
- (学习笔记)安卓开发过程中需要的权限整理(不定期更新)
- react native学习笔记25——Android原生模块的封装与调用
- Android阶段学习笔记 7.25-7.29 之 解析聚合数据 全国天气预报 Json
- 学习笔记1-安卓系统架构
- 学习笔记2-安卓开发环境搭建、创建虚拟机
- UI学习笔记---第十六天XML JSON解析
- JSON-JavaScript对象表示法--学习笔记
- JSON数据传输学习笔记