JSON是一种格式=物件型态用文字表示出来像用=档案很小
Map{key{Value}}
资料分三种:
JSON是半结构化
政府开放资料: https://data.gov.tw/
点到交通-有看到JSON资料类型
点JSON下载下来点开看-
JSON档案很小可以一直塞
JSON解析器
https://jsoneditoronline.org/#left=local.dowolo&right=local.gogavu
把刚刚下载的资料全部贴入
开新档案:
布置xml档
也是要绑 onclick
产生方法:
自己产生JSON档
把原来的Android换成Project
换成Project
长这样
展开
main-->new-->Directory
Directory的名称-assets 一定要有S不可以乱打
assets 档案
assets 档案--再新增File
命名档案不要中文-要加上副档名.json
按enter
开始~
开始打入key和value
{
"no": 1,
"friends": []
}
加入物件 最後一个没有,
那3个放在{}阵列里面的属性要一样
KEY不能改: VALUE值可以改
{
"no": 1,
"friends": [
{"name": "AAAA","phone": "1234567890"},
{"name": "SONIA","phone": "0987654321"},
{"name": "ANNY","phone": "13572468"}
]
}
回到java档-宣告变数
package com.huang.myjson;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import org.json.JSONObject;
public class MainActivity extends AppCompatActivity {
//宣告变数
Context context;
TextView show;
JSONObject obj;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void onclick(View view) {
}
}
初始化-
package com.huang.myjson;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import org.json.JSONObject;
public class MainActivity extends AppCompatActivity {
//宣告变数
Context context;
TextView show;
JSONObject obj;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化
context = this;
show = findViewById(R.id.show);
}
public void onclick(View view) {
}
}
在onclick先产生空的暂时的容器+不同来源的取得方式
package com.huang.myjson;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Context;
import android.content.res.AssetManager;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import org.json.JSONObject;
public class MainActivity extends AppCompatActivity {
//宣告变数
Context context;
TextView show;
JSONObject obj;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化
context = this;
show = findViewById(R.id.show);
}
public void onclick(View view) {
//暂存资料区
StringBuilder sb = new StringBuilder();
String all="";
//Assets资源管理器
AssetManager manager = context.getAssets();
}
}
//读取JSON档:byte-->char-->String-->一行一行读取
package com.huang.myjson;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Context;
import android.content.res.AssetManager;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import org.json.JSONObject;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class MainActivity extends AppCompatActivity {
//宣告变数
Context context;
TextView show;
JSONObject obj;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化
context = this;
show = findViewById(R.id.show);
}
public void onclick(View view) {
//暂存资料区
StringBuilder sb = new StringBuilder();
String all="";
//Assets资源管理器
AssetManager manager = context.getAssets();
//读取JSON档:byte-->char-->String-->一行一行读取
BufferedReader br = new BufferedReader(new InputStreamReader(manager.open("myjson.json")));
}
}
open要抛例外 反红才会消失
目前长这样.顺序不可反
package com.huang.myjson;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Context;
import android.content.res.AssetManager;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import org.json.JSONObject;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class MainActivity extends AppCompatActivity {
//宣告变数
Context context;
TextView show;
JSONObject obj;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化
context = this;
show = findViewById(R.id.show);
}
public void onclick(View view) {
//暂存资料区
StringBuilder sb = new StringBuilder();
String all="";
//Assets资源管理器
AssetManager manager = context.getAssets();
//读取JSON档:byte-->char-->String-->一行一行读取
try {
BufferedReader br = new BufferedReader(new InputStreamReader(manager.open("myjson.json")));
} catch (IOException e) {
e.printStackTrace();
}
}
}
JSONObject obj;做初始化动作+
转成字串 JSONObject会反红是因为要抛例外
长这样
package com.huang.myjson;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Context;
import android.content.res.AssetManager;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class MainActivity extends AppCompatActivity {
//宣告变数
Context context;
TextView show;
JSONObject obj;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化
context = this;
show = findViewById(R.id.show);
}
public void onclick(View view) {
//暂存资料区
StringBuilder sb = new StringBuilder();
String all="";
//Assets资源管理器
AssetManager manager = context.getAssets();
try {
//读取JSON档:byte-->char-->String-->一行一行读取
BufferedReader br = new BufferedReader(
new InputStreamReader(manager.open("myjson.json")));
//逐行读取并放到StringBuilder中
String line;
while ((line=br.readLine())!=null){
sb.append(line);
}
//将字串转成"JSON物件"
JSONObject allObj = new JSONObject(sb.toString());
} catch (IOException | JSONException e) {
e.printStackTrace();
}
}
}
JSONObject allObj = new JSONObject(sb.toString());
把准字串转
obj = new JSONObject(sb.toString());
再加入Toast这个又要用手机才可以看到结果
package com.huang.myjson;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Context;
import android.content.res.AssetManager;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class MainActivity extends AppCompatActivity {
//宣告变数
Context context;
TextView show;
JSONObject obj;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化
context = this;
show = findViewById(R.id.show);
}
public void onclick(View view) {
//暂存资料区
StringBuilder sb = new StringBuilder();
String all="";
//Assets资源管理器
AssetManager manager = context.getAssets();
try {
//读取JSON档:byte-->char-->String-->一行一行读取
BufferedReader br = new BufferedReader(
new InputStreamReader(manager.open("myjson.json")));
//逐行读取并放到StringBuilder中
String line;
while ((line=br.readLine())!=null){
sb.append(line);
}
//将字串转成"JSON物件"
obj = new JSONObject(sb.toString());
//指定要取出的阵列
JSONArray objArray = obj.getJSONArray("friends");
//读取里面的东西.把3个name都收起来
for(int i=0;i< objArray.length();i++){
JSONObject o=objArray.getJSONObject(i);
String name = o.getString("name");
all +=name+"";
}
//用文字栏位显示结果 Toast.makeText(context,all,Toast.LENGTH_SHORT).show();
show.setText(all);
} catch (IOException | JSONException e) {
e.printStackTrace();
Toast.makeText(context,"FAIL",Toast.LENGTH_SHORT).show();
}
}
}
抓到3个名字
下周要面试考mysql+C#我应该要来准备的.........最後录取了~只是我不会去
其实非本科面试机会并不会很少~人人有机会
所以这篇还是先纯文字~真拍谢:
Andriod环境安装好了之後的步骤:
因为又开始爱困了~
希望...可以让我继续有铁人发文的机会~拜托拜托
Method 操作方法 在熟悉 selector 後,就可以开始采用物件连结的方式进行各种作业 最基...
注:发文日和截图的日期不一定是同一天,所以价格计算上和当日不同,是很正常的。 声明:这一系列文章并无...
本节是以 Golang 上游 ee91bb83198f61aa8f26c3100ca7558d30...
str.format 是在 python 中常用的字串格式化招式,可以控制想要显示的资料型态、正负号...
昨天看完value types,今天来聊聊 reference types。 solidity 的 ...