14.Android学习之网络编程及Internet应用(二)

目录

14.网络编程及Internet应用(二)

2.解析JSON格式数据

2-1.JSON简介

2-2.解析JSON数据

3.使用WebView显示网页

3-1.使用WebView组件浏览网页

3-2.让WebView支持JavaScript

4.难点解答

4-1.GET和POST请求的区别

4-2.WebView支持JavaScript与不支持的区别


14.网络编程及Internet应用(二)

2.解析JSON格式数据

2-1.JSON简介

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,其语法简洁,不仅易于阅读和编写,而且也易于机器的解析和生成。

JSON通常由两种数据结构组成,一种是对象 (“名称/值”形式的映射),另一种是数组(值的有序列表)。ISON 没有变量或其他控制,只用于数据传输。

◆对象

在JSON中,可以使用下面的语法格式来定义对象。

{“属性1”:属性值1,“属性2”:属性值2......“属性n”:属性值n}

◎属性1~属性n:用于指定对象拥有的属性名。

◎属性值1~属性值n:用于指定各属性对应的属性值,其值可以是字符串、数字、布尔值(true/false)、null、 对象和数组。

例如,定义一个保存名人信息的对象,可以使用下面的代码:

{
"name" :"扎克伯格",
"address": "United States New York",
"wellknownsaying" :"当你有使命,它会让你更专注”
}

◆数组

在JSON中,可以使用下面的语法格式来定义对象。

{"数组名":[
对象1,对象2......,对象n
]}

◎数组名:用于指定当前数组名。

◎对象1~对象n:用于指定各数组元素,它的值为合法的JSON对象。例如,定义一个保存名人信息的数组,可以使用下面的代码:

{"famousPerson" :[
{"name":"扎克伯格","address":"美国","wellknownsaying":" 当你有使命,它会让你更专注"},
{"name":"马云","address":"中国","wellknownsaying":"心中无敌者,无敌于天下"}
]}

2-2.解析JSON数据

在Android的官网中提供了解析JSON数据的JSONObject和JSONArray对象。其中,JSONObject用于解析JSON对象;JSONArray用于解析JSON数组。

例:

 MainActivity.java

package com.example.analysisofjsondata;
​
import androidx.annotation.NonNull;
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AppCompatActivity;
​
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.widget.TextView;
​
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
​
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
​
public class MainActivity extends AppCompatActivity {
    private TextView step,step1,time,time1,heat,heat1,km,km1;
    private Handler handler;
    private String result="";//显示内容
​
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ActionBar actionBar=getSupportActionBar();
        actionBar.hide();
​
        step=findViewById(R.id.main_tv1);
        time=findViewById(R.id.main_tv2);
        heat=findViewById(R.id.main_tv3);
        km=findViewById(R.id.main_tv4);
        step1=findViewById(R.id.main_tv5);
        time1=findViewById(R.id.main_tv6);
        heat1=findViewById(R.id.main_tv7);
        km1=findViewById(R.id.main_tv8);
​
        handler=new Handler(){//解析返回的JSON数组并显示
            @Override
            public void handleMessage(@NonNull Message msg) {
                //解析返回的JSON串数据并显示
                TextView[][] textViews={
  {step,time,heat,km},{step1,time1,heat1,km1}};
                try {
                    JSONArray jsonArray=new JSONArray(result
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值