Android初级自学笔记—json 数据解析
2016-01-24 21:53
513 查看
json 数据解析
json(JavaScript Object Notation)是一种轻量级的数据交换格式。本质就是具有特定格式的字符串。
json 数据格式
String json1="{"id":12,"name":"tom"}";
String json1="[{"id":12,"name":"tom"},{"id":12,"name":"tom"}]";
get(String name)此方法只返回值,但在对象类型的形式
getBoolean(String name)该方法返回键指定的布尔值
getDouble(String name)该方法返回键指定的double值
getInt(String name)该方法返回键指定的整数值
getLong(String name)该方法返回键指定的long值
length()这个方法返回这个对象的名称/值映射关系的数量..
names()这个方法返回一个包含此对象的字符串名称的数组
构建对象 JSONObject json = new JSONObject();
解析下面json数据
{
"sys":
{
"country":"GB",
"sunrise":1381107633,
"sunset":1381149604
},
"weather":[
{
"id":711,
"main":"Smoke",
"description":"smoke",
"icon":"50n"
}
],
"main":
{
"temp":304.15,
"pressure":1009,
}
}
解析一个JSON对象,首先创建一流的 JSONObject 对象,并指定包含JSON数据给它一个字符串。其语法是:
String in;
JSONObject reader = new JSONObject(in);
然后是解析JSON。一个JSON文件由不同的对象有不同的键/值对等,这样JSONObject有一个单独的函数用于解析每个JSON文件的组成。它的语法如下:
JSONObject sys = reader.getJSONObject("sys");
country = sys.getString("country");
JSONObject main = reader.getJSONObject("main");
temperature = main.getString("temp");
解析代码
private String country = "county";
private String temperature = "temperature";
private String humidity = "humidity";
private String pressure = "pressure";
private String urlString = null;
public volatile boolean parsingComplete = true;
public HandleJSON(String url){
this.urlString = url;
}
public String getCountry(){
return country;
}
public String getTemperature(){
return temperature;
}
public String getHumidity(){
return humidity;
}
public String getPressure(){
return pressure;
}
@SuppressLint("NewApi")
public void readAndParseJSON(String in) {
try {
JSONObject reader = new JSONObject(in);
JSONObject sys = reader.getJSONObject("sys");
country = sys.getString("country");
JSONObject main = reader.getJSONObject("main");
temperature = main.getString("temp");
pressure = main.getString("pressure");
humidity = main.getString("humidity");
parsingComplete = false;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void fetchJSON(){
Thread thread = new Thread(new Runnable(){
@Override
public void run() {
try {
URL url = new URL(urlString);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setReadTimeout(10000 /* milliseconds */);
conn.setConnectTimeout(15000 /* milliseconds */);
conn.setRequestMethod("GET");
conn.setDoInput(true);
// Starts the query
conn.connect();
InputStream stream = conn.getInputStream();
String data = convertStreamToString(stream);
readAndParseJSON(data);
stream.close();
} catch (Exception e) {
e.printStackTrace();
}
}
});
thread.start();
}
static String convertStreamToString(java.io.InputStream is) {
java.util.Scanner s = new java.util.Scanner(is).useDelimiter("A");
return s.hasNext() ? s.next() : "";
}
json(JavaScript Object Notation)是一种轻量级的数据交换格式。本质就是具有特定格式的字符串。
json 数据格式
String json1="{"id":12,"name":"tom"}";
String json1="[{"id":12,"name":"tom"},{"id":12,"name":"tom"}]";
get(String name)此方法只返回值,但在对象类型的形式
getBoolean(String name)该方法返回键指定的布尔值
getDouble(String name)该方法返回键指定的double值
getInt(String name)该方法返回键指定的整数值
getLong(String name)该方法返回键指定的long值
length()这个方法返回这个对象的名称/值映射关系的数量..
names()这个方法返回一个包含此对象的字符串名称的数组
构建对象 JSONObject json = new JSONObject();
解析下面json数据
{
"sys":
{
"country":"GB",
"sunrise":1381107633,
"sunset":1381149604
},
"weather":[
{
"id":711,
"main":"Smoke",
"description":"smoke",
"icon":"50n"
}
],
"main":
{
"temp":304.15,
"pressure":1009,
}
}
解析一个JSON对象,首先创建一流的 JSONObject 对象,并指定包含JSON数据给它一个字符串。其语法是:
String in;
JSONObject reader = new JSONObject(in);
然后是解析JSON。一个JSON文件由不同的对象有不同的键/值对等,这样JSONObject有一个单独的函数用于解析每个JSON文件的组成。它的语法如下:
JSONObject sys = reader.getJSONObject("sys");
country = sys.getString("country");
JSONObject main = reader.getJSONObject("main");
temperature = main.getString("temp");
解析代码
private String country = "county";
private String temperature = "temperature";
private String humidity = "humidity";
private String pressure = "pressure";
private String urlString = null;
public volatile boolean parsingComplete = true;
public HandleJSON(String url){
this.urlString = url;
}
public String getCountry(){
return country;
}
public String getTemperature(){
return temperature;
}
public String getHumidity(){
return humidity;
}
public String getPressure(){
return pressure;
}
@SuppressLint("NewApi")
public void readAndParseJSON(String in) {
try {
JSONObject reader = new JSONObject(in);
JSONObject sys = reader.getJSONObject("sys");
country = sys.getString("country");
JSONObject main = reader.getJSONObject("main");
temperature = main.getString("temp");
pressure = main.getString("pressure");
humidity = main.getString("humidity");
parsingComplete = false;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void fetchJSON(){
Thread thread = new Thread(new Runnable(){
@Override
public void run() {
try {
URL url = new URL(urlString);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setReadTimeout(10000 /* milliseconds */);
conn.setConnectTimeout(15000 /* milliseconds */);
conn.setRequestMethod("GET");
conn.setDoInput(true);
// Starts the query
conn.connect();
InputStream stream = conn.getInputStream();
String data = convertStreamToString(stream);
readAndParseJSON(data);
stream.close();
} catch (Exception e) {
e.printStackTrace();
}
}
});
thread.start();
}
static String convertStreamToString(java.io.InputStream is) {
java.util.Scanner s = new java.util.Scanner(is).useDelimiter("A");
return s.hasNext() ? s.next() : "";
}
相关文章推荐
- Kotlin开发Android笔记8:Kotlin数据类及json解析
- Android笔记----对服务器XML以及JSON数据的简单解析
- android笔记--JSON数据解析
- Android 学习笔记之Volley(七)实现Json数据加载和解析...
- android笔记--JSON数据解析
- Android阶段学习笔记 7.25-7.29 之 解析聚合数据 全国天气预报 Json
- android 学习笔记 解析json格式的数据 JSONObject 和GSON解析json格式数据
- Android笔记---解析JSON格式数据
- Android笔记之Json数据解析
- android笔记--JSON数据解析
- android菜鸟学习笔记25----与服务器端交互(二)解析服务端返回的json数据及使用一个开源组件请求服务端数据
- Android笔记:Gsonformat解析Json数据
- Android基础笔记——JSONObject方式解析JSON数据
- Android随手笔记44之JSON数据解析
- Android初级开发(九)——网络交互—解析JSON格式数据
- android xml解析技术 json数据传输技术
- android 解析json数据格式
- android解析json数据
- Android中数据文件解析(Json解析【从服务器端获取数据并且解析,显示在客户端上面】)
- android 解析json数据格式