Skip to content

Commit 10576f6

Browse files
authored
Merge pull request #489 from 666Ohayo/master
#6 #29 第六次作业
2 parents 062bc8a + e759bb3 commit 10576f6

File tree

3 files changed

+131
-0
lines changed

3 files changed

+131
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
package edu.hzuapps.androidlabs.homeworks.net1414080903140;
2+
3+
import android.os.Bundle;
4+
import android.os.Handler;
5+
import android.os.Message;
6+
import android.support.v7.app.AppCompatActivity;
7+
import android.widget.TextView;
8+
9+
import org.json.JSONArray;
10+
import org.json.JSONException;
11+
import org.json.JSONObject;
12+
13+
import java.io.IOException;
14+
import java.io.InputStream;
15+
import java.net.HttpURLConnection;
16+
import java.net.MalformedURLException;
17+
import java.net.URL;
18+
19+
public class Net1414080903140ShowJsonActivity extends AppCompatActivity {
20+
21+
TextView tv;
22+
23+
Handler handler=new Handler(){
24+
@Override
25+
public void handleMessage(Message msg) {
26+
super.handleMessage(msg);
27+
String a= parseJson((String) msg.obj);
28+
tv.setText(a);
29+
}
30+
};
31+
32+
@Override
33+
protected void onCreate(Bundle savedInstanceState) {
34+
super.onCreate(savedInstanceState);
35+
setContentView(R.layout.activity_net1414080903140_show_json);
36+
tv= (TextView) findViewById(R.id.tv_json);
37+
new Thread(){
38+
@Override
39+
public void run() {
40+
super.run();
41+
String a=a("https://raw.githubusercontent.com/666Ohayo/android-labs-2017" +
42+
"/master/AndroidLabs/app/src/main/res/values/text.json");
43+
Message msg=handler.obtainMessage();
44+
msg.obj=a;
45+
handler.sendMessage(msg);
46+
}
47+
}.start();
48+
}
49+
50+
public String a(String u) {
51+
try {
52+
URL url = new URL(u);
53+
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
54+
conn.setRequestMethod("GET");
55+
conn.setConnectTimeout(5000);
56+
InputStream is = conn.getInputStream();
57+
byte[] b = new byte[1024];
58+
StringBuilder sb = new StringBuilder();
59+
String a;
60+
int len;
61+
while ((len=is.read(b)) != -1) {
62+
a=new String(b,0,len);
63+
sb.append(a);
64+
}
65+
return sb.toString();
66+
} catch (MalformedURLException e) {
67+
e.printStackTrace();
68+
} catch (IOException e) {
69+
e.printStackTrace();
70+
}
71+
return "";
72+
}
73+
74+
public String parseJson(String data){
75+
StringBuilder sb=new StringBuilder();
76+
// try {
77+
// JSONArray jsonArray=new JSONArray(data);
78+
// for (int i=0;i<jsonArray.length();i++){
79+
// JSONObject object=jsonArray.getJSONObject(i);
80+
// sb.append(object.getString("name"));
81+
// sb.append("\n\n");
82+
// sb.append(object.getString("sex"));
83+
// sb.append("\n\n");
84+
// sb.append(object.getString("dormitory"));
85+
// sb.append("\n\n");
86+
// sb.append(object.getString("clazz"));
87+
// sb.append("\n\n");
88+
// sb.append(object.getString("age"));
89+
// }
90+
// } catch (JSONException e) {
91+
// e.printStackTrace();
92+
// }
93+
try {
94+
JSONObject jsonObject=new JSONObject(data);
95+
JSONArray jsonArray=jsonObject.getJSONArray("employees");
96+
for (int i=0;i<jsonArray.length();i++){
97+
JSONObject object=jsonArray.getJSONObject(i);
98+
sb.append("firstName: "+object.getString("firstName"));
99+
sb.append("\n\n");
100+
sb.append("lastName: "+object.getString("lastName"));
101+
sb.append("\n\n");
102+
}
103+
} catch (JSONException e) {
104+
e.printStackTrace();
105+
}
106+
return sb.toString();
107+
}
108+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
3+
android:id="@+id/activity_show_json"
4+
android:layout_width="match_parent"
5+
android:layout_height="match_parent"
6+
android:paddingBottom="@dimen/activity_vertical_margin"
7+
android:paddingLeft="@dimen/activity_horizontal_margin"
8+
android:paddingRight="@dimen/activity_horizontal_margin"
9+
android:paddingTop="@dimen/activity_vertical_margin">
10+
11+
<TextView
12+
android:layout_width="match_parent"
13+
android:layout_height="match_parent"
14+
android:id="@+id/tv_json"/>
15+
16+
</RelativeLayout>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"employees": [
3+
{ "firstName":"Bill" , "lastName":"Gates" },
4+
{ "firstName":"George" , "lastName":"Bush" },
5+
{ "firstName":"Thomas" , "lastName":"Carter" }
6+
]
7+
}

0 commit comments

Comments
 (0)