导读: NETjson解析类(共3篇)json解析例子下面这个是自己修改别人的小例子,主要是加一些注释和讲解,这个例子主要是使用android进行json解析。1 单数据{singer:{id:01,name:tom,gender:男}}2 多个数据{singers:[3 {id:02,name:tom,gender...
json解析例子
.NETjson解析类 第一篇
下面这个是自己修改别人的小例子,主要是加一些注释和讲解,这个例子主要是使用android进行json解析。
1 单数据{'singer':{'id':01,'name':'tom','gender':'男'}}
2 多个数据{"singers":[
3 {'id':02,'name':'tom','gender':'男'},
4 {'id':03,'name':'jerry,'gender':'男'},
5 {'id':04,'name':'jim,'gender':'男'},
6 {'id':05,'name':'lily,'gender':'女'}]}
下面的类主要是解析单个数据parseJson()和多个数据的方法parseJsonMulti(): 查看源码
打印?
01 public class JsonActivity extends Activity {
02 /** Called when the activity is first created. */
03 private TextView tvJson;
04 private Button btnJson;
05 private Button btnJsonMulti;
06 @Override
07 public void onCreate(Bundle savedInstanceState) {
08 super.onCreate(savedInstanceState);
09 setContentView(R.layout.main);
10 tvJson = (TextView) this.findViewById(R.id.tvJson);
11 btnJson = (Button) this.findViewById(R.id.btnJson);
12 btnJsonMulti = (Button) this.findViewById(R.id.btnJsonMulti);
13 btnJson.setOnClickListener(new View.OnClickListener() {
14 @Override
15 public void onClick(View v) {
16 // url
17 // String strUrl = "18 String strUrl = ServerPageUtil.getStrUrl(UrlsOfServer.JSON_SINGER); 19 //获得返回的Json字符串
20 String strResult = connServerForResult(strUrl);
21 //解析Json字符串
22 parseJson(strResult);
23 }
24 });
25 btnJsonMulti.setOnClickListener(new View.OnClickListener() {
26 @Override
27 public void onClick(View v) {
28 String strUrl = ServerPageUtil.getStrUrl(UrlsOfServer.JSON_SINGERS); 29 String strResult = connServerForResult(strUrl);
30 //获得多个Singer
31 parseJsonMulti(strResult);
32 }
33 });
34 }
35 private String connServerForResult(String strUrl) {
36 // HttpGet对象
37 HttpGet httpRequest = new HttpGet(strUrl);
38 String strResult = "";
39 try {
40 // HttpClient对象
41 HttpClient httpClient = new DefaultHttpClient();
42 // 获得HttpResponse对象
43 HttpResponse httpResponse = httpClient.execute(httpRequest);
44 if (httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { 45 // 取得返回的数据
46 strResult = EntityUtils.toString(httpResponse.getEntity());
47 }
48 } catch (ClientProtocolException e) {
49 tvJson.setText("protocol error");
50 e.printStackTrace();
51 } catch (IOException e) {
52 tvJson.setText("IO error");
53 e.printStackTrace();
54 }
55 return strResult;
56 }
57 // 普通Json数据解析
58 private void parseJson(String strResult) {
59 try {
60 JSONObject jsonObj = new JSONObject(strResult).getJSONObject("singer"); 61 int id = jsonObj.getInt("id");
62 String name = jsonObj.getString("name");
63 String gender = jsonObj.getString("gender");
64 tvJson.setText("ID号"+id + ", 姓名:" + name + ",性别:" + gender); 65 } catch (JSONException e) {
66 System.out.println("Json parse error");
67 e.printStackTrace();
68 }
69 }
70 //解析多个数据的Json
71 private void parseJsonMulti(String strResult) {
72 try {
73 JSONArray jsonObjs = new JSONObject(strResult).getJSONArray("singers"); 74 String s = "";
75 for(int i = 0; i < jsonObjs.length() ; i++){
76 JSONObject jsonObj = ((JSONObject)jsonObjs.opt(i))
77 .getJSONObject("singer");
78 int id = jsonObj.getInt("id");
79 String name = jsonObj.getString("name");【.NETjson解析类】
80 String gender = jsonObj.getString("gender");
81 s += "ID号"+id + ", 姓名:" + name + ",性别:" + gender+ "\n" ; 82 }
83 tvJson.setText(s);
84 } catch (JSONException e) {【.NETjson解析类】
85 System.out.println("Jsons parse error !");
86 e.printStackTrace();
87 }
88 }
89 }
java中解析json的三种方式
.NETjson解析类 第二篇
//第一种
public void jsonTx() {
String json = "{'status':200,'message':'查询成功','data':[{'id':1,'name':'name1','describe':'
第一条数据'}]}";【.NETjson解析类】
JSONObject data = new JSONObject(json);
int status = data.optInt("status");
JSONArray data1 = data.getJSONArray("data");
if (status==200) {
for(int i=0;i<data1.length();i++){
String s = data1.getString(i);
System.out.println(s);
JSONObject data2 = JSONObject.fromObject(s);
System.out.println(data2.getString("id"));
System.out.println(data2.getString("name"));
System.out.println(data2.getString("describe"));
}
}else if(status==500) {
String msg = data.getString("message");
System.out.println(msg);
}
}
//第二种
public void getJson() {
String json =
"{'response':{'data':[{'address':'北京','province':'海淀','district':'西三旗','city':'地铁'}]},'status':'ok'}";
JSONObject jsonObject = JSONObject.fromObject(json);
String status = jsonObject.getString("status");
// System.out.println(str);
String response = jsonObject.getString("response");
JSONObject jsonObject2 = JSONObject.fromObject(response);
JSONArray data = jsonObject2.getJSONArray("data");
for(int i=0;i<data.length();i++){
String s = data.getString(i);
JSONObject data2 = JSONObject.fromObject(s);
System.out.println(data2.getString("address"));
System.out.println(data2.getString("province"));
System.out.println(data2.getString("district"));
System.out.println(data2.getString("city"));
}
}
//第三种(只获取json里面数据)
public static void main(String[] args) {
String json =
"{\"response\":{\"data\":[{\"address\":\"北京\",\"province\":\"海淀\",\"district\":\"三环\",\"city\":\"桥\"}]},\"status\":\"ok\"}";
String str[] =
json.replaceAll(".*\"address\":\"(.*?)\".*\"province\":\"(.*?)\",.*\"district\":\"(.*?)\",.*\"city\":\"(.*?)\".*",
"$2,$4,$3,$1").split(",");
for (String s : str) {
System.out.println(s);
}
}
JSON解析详细文档
.NETjson解析类 第三篇
JSON 的含义?
JSON的全称是JavaScript Object Notation,是一种轻量级的数据交换格式。JSON与XML具有相同的特性,例如易于人编写和阅读,易于机器生成和解析。但是JSON比XML数据传输的有效性要高出很多。JSON完全独立与编程语言,使用文本格式保存。
JSON数据有两种结构:
Name-Value 对构成的集合,类似于Java中的Map。 Value的有序列表,类似于Java中的Array。
一个JSON格式的数据示例: {
"Name": "Apple",
"Expiry": "2007/10/11 13:54", "Price": 3.99, "Sizes": [ "Small", "Medium", "Large" ] }
更多关于JSON数据格式的说明参看JSON官方网站:/retype/zoom/f4f64fd1b14e852458fb572c?pn=5&x=0&y=1586&raww=14&rawh=15&o=png_6_0_0_213_608_16_17_893.25_1263.375&type=pic&aimh=15&md5sum=9947825c5cc6765ae336e9aa6fe51ad4&sign=44ea16480b&zoom=&png=2712-6841&jpg=0-0" target="_blank">