json-lib.jar开发包使用:
依赖包:commons-beanutils.jar;
commons-httpclient.jar;
commons-lang.jar;
ezmorph.jar;不少人使用时会提示net.sf.ezmorph.xxx找不到,就是缺这个:
morph-1.0.1.jar
相关链接:http://json-lib.sourceforge.net/http://ezmorph.sourceforge.net/http://morph.sourceforge.net/使用过程中问题: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);
-
- }
-
- public void list2json() {
- List list = new ArrayList();
- list.add("first");
- list.add("second");
- JSONArray jsonArray = JSONArray.fromObject(list);
- System.out.println(jsonArray);
-
- }
-
- public void createJson() {
- JSONArray jsonArray = JSONArray.fromObject("['json','is','easy']");
- System.out.println(jsonArray);
-
- }
-
- 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);
-
-
-
- }
-
- 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();
- }
- }
操作的bean:
- import net.sf.json.JSONFunction;
-
- public class MyBean {
- private String name = "json";
- private int pojoId = 1;
-
- private String func1 = "function(i){ return this.options[i]; }";
- private JSONFunction func2 = new JSONFunction(new String[] { "i" },
- "return this.options[i];");
-
-
- ......
- }
题外话: 这个我对json-lib包的初次尝试,希望对大家有所帮助,另外大家有谁用过其它处理json的开发包,提出来,大家探讨一下~!!!!
相关推荐
然而,当遇到单个参数是基本类型如`java.lang.Integer`或`java.lang.String`时,如果按照处理对象类型的参数方式直接在`<if>`中使用参数名,可能会遇到异常`There is no getter for property named 'xxx' in 'class ...
### property用法详解 在Java Web开发中,特别是使用Struts2框架时,`property`标签是处理数据展示的关键工具之一。它主要用于显示Action中的属性值。本文将深入解析`property`标签的各种用法,帮助开发者更好地...
标题中的"PyPI 官网下载 | getty-getter-0.0a.tar.gz"指出这是一个从Python Package Index(PyPI)官方下载的软件包,名为"getty-getter",版本为0.0a,格式为tar.gz。PyPI是Python社区的主要仓库,它存储并分发...
在进行JSON与Java对象互转时,需要注意的是,Java对象的属性必须有对应的getter和setter方法,因为`JSONObject`依赖于Java的反射机制来读取和设置属性。此外,`JSONObject`在处理枚举类型时可能需要特别处理,通常会...
Invalid property 'URIType' of bean class [com.alibaba.citrus.service.uribroker.uri.GenericURIBroker]: Bean property 'URIType' is not writable or has an invalid setter method. Does the parameter type ...
这个场景中提到的是将一个Java类编译成JSON,但只包含那些具有getter和setter方法的属性。这样的转换有助于减少JSON输出中的冗余信息,只保留与业务逻辑相关的数据。下面我们将深入探讨这个过程。 首先,我们需要...
**FastJSON:高效便捷的Java JSON库** FastJSON是阿里巴巴提供的一款开源的Java JSON库,它具有极高的性能和易用性,广泛应用于各种Java项目中。与JsonLib等其他JSON处理库相比,FastJSON虽然在某些高级特性上可能...
在JavaScript中,setter和getter是两种特殊的方法,用于对象属性的访问控制。它们提供了一种方式来监视或修改对象属性的读取和赋值行为,从而增强了数据的安全性和灵活性。在JavaScript的ECMAScript规范中,setter和...
property 'URIType' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter? 这个问题我也在网上找了很久也没有好的解决方案,最后还是...
在JavaScript编程中,"signs_getter_setter"是一个常见的概念,它涉及到对象属性的访问控制和封装。标记常量通常是指将某些变量定义为不可更改的,而Getter-Setter则是一种面向对象编程中的特性,用于获取(get)或...
在Java编程中,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它使得人和机器都能轻易地阅读和编写。JSON数据通常用于前后端交互,因为它的结构清晰,易于解析和生成。本篇文章将重点讲解如何在...
5. “No getter method for property XXX of bean teacher” 这个错误通常发生在 JSP 里要取一个 bean 的属性出来,但这个 bean 并没有这个属性。解决方法是检查 JSP 中某个标签的 property 属性的值。 6. ...
《PyPI官网下载:探索easy-module-attribute-getter-0.9.37》 在Python的世界里,PyPI(Python Package Index)是广大开发者获取和分享Python库的重要平台。"easy-module-attribute-getter"是一款在PyPI上发布的...
// 为了转换为JSON,User类需要提供getter和setter方法 // ... } ``` 在这个例子中,`User`类的实例被转换成了一个`JSONObject`,并打印出对应的JSON字符串。 另一种常见的JSON处理库是`com.alibaba.fastjson`,...
map = Json.fromJson(HashMap.class, Lang.trim(json)); // 注意这里可能需要异常处理 ``` 总的来说,JSON是Java开发中不可或缺的数据交换工具,通过各种JSON库,我们可以方便地在Java对象和JSON字符串之间进行转换...
Invalid property 'error_view' of bean class [com.demo.controller.action.AuthorAction]: Bean property 'error_view' is not writable or has an invalid setter method. Does the parameter type of the ...
1. **Bean转化为JSON时的错误**:当尝试将一个bean转化为JSON时,如果bean不是public的,可能会抛出`JSONException`,提示“Property 'name' has no getter method”。这是因为JSON转化需要bean的属性有getter方法,...
String name = (String) getter.invoke(person); Method setter = personClass.getMethod("setName", String.class); setter.invoke(person, "张三"); ``` 总结起来,"【IT十八掌徐培成】Java基础第25天-03.递归...
[com.alibaba.citrus.service.uribroker.uri.GenericURIBroker]: Bean property 'URIType' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of ...
使用@IdClass创建联合主键,并实现外部关联 在 Java Persistence API(JPA)中,联合主键是指由多个字段组成的主键,可以使用@IdClass注解来实现。在本文中,我们将介绍如何使用@IdClass创建联合主键,并实现外部...