json lib.jar怎么使用

 我来答
PJJDCCW
2015-10-07 · TA获得超过50.1万个赞
知道顶级答主
回答量:6.9万
采纳率:91%
帮助的人:5069万
展开全部
  json-lib.jar开发包使用:
  依赖包:
  commons-beanutils.jar;
  commons-httpclient.jar;
  commons-lang.jar;
  ezmorph.jar;不少人使用时会提示net.sf.ezmorph.xxx找不到,就是缺这个:
  morph-1.0.1.jar
  使用过程中问题:
  1,把bean转化为json格式时老提示如下错误:
  Exception in thread "main" net.sf.json.JSONException: java.lang.NoSuchMethodException: Property 'name' has no getter method
  解决:声明bean为public class xxx,必须是public,我用默认类型(class xxx)都不行
  2,Exception in thread "main" java.lang.NoSuchMethodError: org.apache.commons.lang.ArrayUtils.toObject([C)[Ljava/lang/Character;
  原因:定义属性如下:private char[] options = new char[] { 'a', 'f' };好像不能处理这种类型的
  3, private String func1 = "function(i){ return this.options[i]; }";
   和
   private JSONFunction func2 = new JSONFunction(new String[] { "i" },
   "return this.options[i];");
   转换后显示结果差不多:
   {"func1":function(i){ return this.options[i];,"func2":function(i){ return this.options[i]; }}
  测试类:

  import java.util.ArrayList;
  import java.util.HashMap;
  import java.util.List;
  import java.util.Map;

  import net.sf.json.JSONArray;
  import net.sf.json.JSONObject;

  public class Json {
   public static void main(String[] args) {
   Json j = new Json();
   j.bean2json();
   }

   public void arr2json() {
   boolean[] boolArray = new boolean[] { true, false, true };
   JSONArray jsonArray = JSONArray.fromObject(boolArray);
   System.out.println(jsonArray);
   // prints [true,false,true]
   }

   public void list2json() {
   List list = new ArrayList();
   list.add("first");
   list.add("second");
   JSONArray jsonArray = JSONArray.fromObject(list);
   System.out.println(jsonArray);
   // prints ["first","second"]
   }

   public void createJson() {
   JSONArray jsonArray = JSONArray.fromObject("['json','is','easy']");
   System.out.println(jsonArray);
   // prints ["json","is","easy"]
   }

   public void map2json() {
   Map
   map.put("name", "json");
   map.put("bool", Boolean.TRUE);
   map.put("int", new Integer(1));
   map.put("arr", new String[] { "a", "b" });
   map.put("func", "function(i){ return this.arr[i]; }");

   JSONObject json = JSONObject.fromObject(map);
   System.out.println(json);
   // prints
   // ["name":"json","bool":true,"int":1,"arr":["a","b"],"func":function(i){
   // return this.arr[i]; }]
   }

   public void bean2json() {
   JSONObject jsonObject = JSONObject.fromObject(new MyBean());
   System.out.println(jsonObject);

   }

   public void json2bean() {
   String json = "{name=\"json2\",func1:true,pojoId:1,func2:function(a){ return a; },options:['1','2']}";
   JSONObject jb = JSONObject.fromString(json);
   JSONObject.toBean(jb, MyBean.class);
   System.out.println();
   }
  }
羿小天
2015-01-29 · 知道合伙人数码行家
羿小天
知道合伙人数码行家
采纳数:48288 获赞数:165598
我爱资源共享

向TA提问 私信TA
展开全部
首先导包  struts-json-plugin.jar
  在struts.xml 文件中 可以把以前使用的json-lib 方式 return null 换成 <result type=json>
  ,package extend换extends="struts-default"然后在Action 中把return null 换成return SUCCESS; 同时不用向以前那样使用str=JSONObject.fromObject(xxx).toString()  response.getWriter.print(str);
  但是和以前不同的是 以前页面接收的是一个对象 而现在是一组对象(json-lib要求你的Action要有get方法 这样他就能发挥他的自动返回功能了)
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式