首页 > 实用文档 > 知识 >

.NETjson解析类

编辑:  成考报名   发布时间:10-11    阅读:

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);

【.NETjson解析类】

JSONArray data = jsonObject2.getJSONArray("data");

for(int i=0;i<data.length();i++){

【.NETjson解析类】

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[] =

【.NETjson解析类】

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">CPU为什么站存那么高(2015-12-14)

  • ·CPU过高怎么办(2015-12-14)
  • ·Facebook为什么进不了中国(2015-12-14)
  • ·Facebook在大陆能用吗(2015-12-14)
  • ·QQ飞车进入游戏里面的声音没有怎么回事(2015-12-14)
  • ●【往下看,下一篇更精彩】●

    最新成考报名

  • 立春过后什么时候鱼开口
  • 2021年立春 2021年立春是几点几分
  • 冬至吃啥 南方冬至吃什么
  • 冬至几月几日 今年冬至是几号
  • 烧碱安全救护常识
  • 国庆节高速免费几天
  • 白露与秋分
  • 请示与批复有什么关系