首页 > 实用文档 > 策划 >

json数据解析

成考报名   发布时间:05-17    阅读:

JSON的List数据封装解析方案
json数据解析(一)

对象封装成为List和JSON解析成封装有对象的List

1、封装方法类(将JSONArray放入JSONObject中发给客户端) package com.mlp.tools;

import java.util.ArrayList;

import org.json.JSONArray;

import org.json.JSONException;

import org.json.JSONObject;

import com.mlp.usebean.Messages;

import com.mlp.usebean.Resources;

import com.mlp.usebean.Types;

public class ListToJSONArray {

public static JSONArray setListToJR(ArrayList<Resources> list){ JSONObject json=null;

JSONArray ja=new JSONArray();

for(int i=0;i<list.size();i++){

json=new JSONObject();

try {

json.put("id", list.get(i).getRes_id()); json.put("name", list.get(i).getRes_name()); json.put("form", list.get(i).getRes_form()); json.put("update", list.get(i).getRes_update()); json.put("upuser", list.get(i).getRes_upuser()); json.put("patch", list.get(i).getRes_patch()); json.put("pass", list.get(i).getRes_pass());

json.put("downsum", list.get(i).getRes_downsum()); json.put("reco", list.get(i).isRes_reco()); json.put("remark", list.get(i).getRes_remark()); ja.put(i, json);

} catch (JSONException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

return ja;

}

public static JSONArray setListToJT(ArrayList<Types> list){ JSONObject json=null;

} JSONArray ja=new JSONArray(); for(int i=0;i<list.size();i++){ json=new JSONObject(); try { json.put("id", list.get(i).getType_id()); json.put("name", list.get(i).getType_name()); json.put("num", list.get(i).getType_num()); ja.put(i, json); } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } } return ja; } public static JSONArray setListToJM(ArrayList<Messages> list){ JSONObject json=null; JSONArray ja=new JSONArray(); for(int i=0;i<list.size();i++){ json=new JSONObject(); try { json.put("id", list.get(i).getMes_id()); json.put("reuser", list.get(i).getMes_user()); json.put("form", list.get(i).getMes_form()); json.put("reto", list.get(i).getMes_to()); json.put("date", list.get(i).getMes_date()); json.put("content", list.get(i).getMes_content()); ja.put(i, json); } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } } return ja; }

2、解析方法类

package com.chase.db;

import java.util.ArrayList;

import org.json.JSONArray;

import org.json.JSONException;

import org.json.JSONObject;

import android.util.Log;

import com.chase.model.Messages;

import com.chase.model.MyRes;

import com.chase.model.Types;

public class JSONArrayToLsit {

public static ArrayList<MyRes> setJRToList(JSONArray ja){ JSONObject json=null;

MyRes re=null;

ArrayList<MyRes> list=new ArrayList<MyRes>(); for(int i=0;i<ja.length();i++){【json数据解析】

try {

re=new MyRes();

json=ja.getJSONObject(i);

re.setRes_id(json.getInt("id"));

re.setRes_name(json.getString("name")); re.setRes_form(json.getString("form"));

re.setRes_update(json.getString("update")); re.setRes_upuser(json.getString("upuser")); re.setRes_pass(json.getInt("pass"));

re.setRes_downsum(json.getInt("downsum")); re.setRes_remark(json.getString("remark")); re.setRes_patch(json.getString("patch"));

re.setRes_reco(json.getBoolean("reco")); Log.e("jiexi", json.toString());

} catch (JSONException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

list.add(re);

}

Log.e("jiexi", list.get(0).getRes_name());

return list;

}

public static ArrayList<Messages> setJMToList(JSONArray ja){ JSONObject json=null;

Messages me=null;

} ArrayList<Messages> list=new ArrayList<Messages>(); for(int i=0;i<ja.length();i++){ me=new Messages(); try { json=ja.getJSONObject(i); me.setMes_id(json.getInt("id")); me.setMes_user(json.getString("reuser")); me.setMes_form(json.getString("form")); me.setMes_date(json.getString("date")); me.setMes_to(json.getString("reto")); me.setMes_content(json.getString("content")); } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } list.add(me); } return list; } public static ArrayList<Types> setJTToList(JSONArray ja){ JSONObject json=null; Types ty=null; ArrayList<Types> list=new ArrayList<Types>(); for(int i=0;i<ja.length();i++){ ty=new Types(); try { json=ja.getJSONObject(i); ty.setType_id(json.getInt("id")); ty.setType_name(json.getString("name")); ty.setType_num(json.getInt("num")); } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } list.add(ty); } return list; }

json解析例子
json数据解析(二)

下面这个是自己修改别人的小例子,主要是加一些注释和讲解,这个例子主要是使用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);

【json数据解析】

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对象

【json数据解析】

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();【json数据解析】

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

80 String gender = jsonObj.getString("gender");

81 s += "ID号"+id + ", 姓名:" + name + ",性别:" + gender+ "\n" ; 82 }

83 tvJson.setText(s);

84 } catch (JSONException e) {

【json数据解析】

85 System.out.println("Jsons parse error !");

86 e.printStackTrace();

87 }

88 }【json数据解析】

89 }

后台转换JSON数据类型,前台解析JSON数据等等例子总结
json数据解析(三)

后台转换JSON数据类型,前台解析JSON数据等等例子总结 JSON对象:

JSONObject obj = new JSONObject();

return obj.toJSONString();

前台解析: Success:function(data){

var result = data.result;

var message = data.message; }

json对象中有json对象的写法:

Objstr为一个JSONObject obj的String转换

private String getsuccess(String objstr,int number){

JSONObject obj = new JSONObject();

return obj.toJSONString();

}

前台解析:

Picjson为success返回的data

var result = picjson.result;

if (result==1) {

var objdata = picjson.obj;

var data = eval('(' + objdata + ')'); var num = picjson.number;

picurl = null;

showpiclist(data, num);

} else{

alert(picjson.message);

picurl = null;

}

list转成json对象

需要的包:

1.commons-lang.jar

2.commons-beanutils.jar

3.commons-collections.jar

4.commons-logging.jar

5.ezmorph.jar

6.json-lib-2.2.2-jdk15.jar ,

由于在struts2中没有自带的.ezmorph.jar ,一开始List对象列表转换成json数据格式的时候并不对还报错 List<ImageBean>

bean=newmainservice.getImageBeanbyNewid(newid); JSONArray

json=JSONArray.fromObject((Object)bean); System.out.println(json.toString());

response.getWriter().print(json.toString()); }catch(Exception e){e.printStackTrace();} 前台解析: $.ajax({

method:"post",

url:"/bs.cxhd/pub/newpiclist.action", data:{"newid":newid},

success:function(data){

var piclist=eval(data);

alert(piclist.length);

alert(piclist[0]["url"]);

},

error:function(data){} 因为时间有限,我就不贴那么多代码了,剩下的自己看看就懂额。毕设有需要的联系QQ2978077563

后期即将发布几个中小型的web项目,需要源码的请加QQ

●【往下看,下一篇更精彩】●

最新成考报名

  • 2023年党支部组织生活会和开展民主评...
  • 组织生活会整改方案【七篇】
  • 党支部组织生活班子整改方案(通用7篇)
  • 重大涉校事件舆情应对处置预案范文(...
  • 两会期间维稳应急预案【12篇】
  • 组织生活会整改方案(通用9篇)
  • 重大涉校事件舆情应对处置预案范文(...
  • 学校“五育并举五育融合”工作实施方...