【www.guakaob.com--新加坡移民】
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);
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();【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) {
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
上一篇:怎么简单的表达爱意
下一篇:微信换号码了怎么登陆