字符串转对象报错JSONObject:202 - Property 'charAt' has no read method. SKIPPED

百曉生 2019-10-31 11:29:26
java中使用JSONObject 将json字符串转对象报错
WARN JSONObject:202 - Property 'charAt' has no read method. SKIPPED
WARN JSONObject:202 - Property 'length' has no read method. SKIPPED

代码是这样的
JSONObject paramJson = JSONObject.fromObject(param);

单独把代码拿出来放到一个新建的类文件中测试是没问题的
但放到业务类中使用,今天报错了,之前还没事,网上查的,都是说有get或set方法没有、或者数据格式问题导致数据中出现对象,但这两个,我的类中没有,请教大神,这是怎么回事吗?
...全文
661 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
百曉生 2019-11-01
  • 打赏
  • 举报
回复
问题知道了,之前用的String,现在改成用StringBuilder了,忘了toString,net.sf.json.JSONObject转换报错了,感谢以上各位的回答
天行归来 2019-10-31
  • 打赏
  • 举报
回复
public class Xxx{ private int charAt; private int length; public int getCharAt(){ return this.charAt; } public int getLength(){ return this.length; } }
百曉生 2019-10-31
  • 打赏
  • 举报
回复
引用 1 楼 天行归来 的回复:
这个只是警告,不影响。原因就是你的类缺了 get 方法

我看转换的json是空的
百曉生 2019-10-31
  • 打赏
  • 举报
回复
引用 1 楼 天行归来 的回复:
这个只是警告,不影响。原因就是你的类缺了 get 方法

不是的,我看json对象没转换成功,
这个看着不涉及类吧,你的意思是charAt和length,要添加这两个的get方法?
天行归来 2019-10-31
  • 打赏
  • 举报
回复
这个只是警告,不影响。原因就是你的类缺了 get 方法
百曉生 2019-10-31
  • 打赏
  • 举报
回复
引用 8 楼 dkwuxiang 的回复:
没有代码的错误永远是最难解决的

唉,业务代码几千行,贴出来肯定不合适的,问题是昨天执行还没问题的,今天不行了
dkwuxiang 2019-10-31
  • 打赏
  • 举报
回复
没有代码的错误永远是最难解决的
百曉生 2019-10-31
  • 打赏
  • 举报
回复
引用 6 楼 天行归来 的回复:
建议用 FastJSON

import net.sf.json.JSONObject;

public class Study02 {
private int charAt;
private int length;

public int getCharAt() { return charAt; }
public void setCharAt(int charAt) { this.charAt = charAt; }

public int getLength() { return length; }
public void setLength(int length) { this.length = length; }

public static void main(String[] args) {
String json = "{\"charAt\":1,\"length\":10}";
JSONObject obj = JSONObject.fromObject(json);
System.out.println(obj.toString());

Study02 sd = (Study02) JSONObject.toBean(obj,Study02.class);
System.out.println(sd.charAt);
}
}

我用的是这个的,net.sf.json.JSONObject
如果单独写个文件,是可以的,问题是放到业务类里边,今天报错了,昨天还没问题
天行归来 2019-10-31
  • 打赏
  • 举报
回复
建议用 FastJSON

import net.sf.json.JSONObject;

public class Study02 {
	private int charAt;
	private int length;

	public int getCharAt() { return charAt; }
	public void setCharAt(int charAt) { this.charAt = charAt; }
	
	public int getLength() { return length; }
	public void setLength(int length) { this.length = length; }
	
	public static void main(String[] args) {
		String json = "{\"charAt\":1,\"length\":10}";
		JSONObject obj = JSONObject.fromObject(json);
		System.out.println(obj.toString());
		
		Study02 sd = (Study02) JSONObject.toBean(obj,Study02.class);
		System.out.println(sd.charAt);
	}
}
百曉生 2019-10-31
  • 打赏
  • 举报
回复
引用 4 楼 天行归来 的回复:
public class Xxx{
private int charAt;
private int length;

public int getCharAt(){
return this.charAt;
}

public int getLength(){
return this.length;
}

}

加了这样不行

50,503

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧