解决: json 字符串转Object 时出现 java.lang.ClassCastException: net.sf.ezmorph.bean.MorphDynaBean cannot be cast to cashway.test.JsonString 异常的问题。
解决方法:设置JsonConfig 类。
解决方法:public void strToJson(String str){
JSONArray parentJson = JSONArray.fromObject(str);
//设置类型
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.setRootClass(JsonString.class); //JsonString.class
Map<String, Class> classMap = new HashMap<String, Class>();
classMap.put("topic", Sub.class); //Sub.class 设置jonString类中包含的类
jsonConfig.setClassMap(classMap);
List<JsonString> persons = (List<JsonString>)JSONArray.toCollection(parentJson, jsonConfig);
//遍历列表
for(JsonString p:persons){
System.out.println("id"+p.getId() +" name:"+p.getName() );
List<Sub> li = p.getTopic();
int len = li.size();
if(li != null && len > 0){
for(int i=0;i<len;i++){
Sub sub = p.getTopic().get(i);
System.out.println("type:"+sub.getType() +" subType:"+sub.getSubtype());
}
}
}
}
2.pojo
package cashway.test;
public class Sub {
private String type;
private String subtype;
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getSubtype() {
return subtype;
}
public void setSubtype(String subtype) {
this.subtype = subtype;
}
}
package cashway.test;
import java.util.ArrayList;
import java.util.List;
public class JsonString {
public static final String STR_JSON= "["
+"{"
+"\"id\": \"1\","
+"\"name\": \"兰州拉面馆\","
+"\"country\": \"120112\","
+"\"address\": \"津南区底商B座6号\","
+"\"ifvalid\": \"True\","
+"\"updatetime\": \"2013-9-11 15:30:50\","
+"\"attribute\": \"450\","
+"\"phone\": \"123456789\","
+"\"topic\": ["
+"{"
+" \"type\": \"fx\","
+"\"subtype\": \"4\""
+"}"
+"]"
+"},"
+"{"
+"\"id\": \"222222\","
+"\"name\": \"中学食堂\","
+"\"country\": \"120\","
+"\"address\": \"大丰堆镇\","
+" \"ifvalid\": \"False\","
+"\"updatetime\": \"2015-9-11 15:31:35\","
+"\"attribute\": \"30\","
+"\"phone\": \"233344555\""
+"}"
+"]";
private String id;
private String name;
private String country;
private String address;
private String ifvalid;
private String updatetime;
private String attribute;
private String phone;
private List<Sub> topic = new ArrayList<Sub>();
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCountry() {
return country;
}
public void setCountry(String country) {
this.country = country;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getIfvalid() {
return ifvalid;
}
public void setIfvalid(String ifvalid) {
this.ifvalid = ifvalid;
}
public String getUpdatetime() {
return updatetime;
}
public void setUpdatetime(String updatetime) {
this.updatetime = updatetime;
}
public String getAttribute() {
return attribute;
}
public void setAttribute(String attribute) {
this.attribute = attribute;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public List<Sub> getTopic() {
return topic;
}
public void setTopic(List<Sub> topic) {
this.topic = topic;
}
}
相关推荐
2. **解析JSON对象**:逐个解析JSON字符串中的键值对,创建一个内部数据结构来存储这些键值对,如数组或自定义的Object类实例。 3. **创建访问接口**:为这个数据结构提供类似"obj("name")"的访问方法,这可能涉及...
在C++编程中,将JSON字符串转换为C++类对象是一项常见的任务,特别是在处理网络通信、数据存储或配置文件时。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析...
1. **对象转JSON字符串**:这个过程也被称为序列化。在Java中,我们可以使用`org.json`库或者`com.google.gson`库来实现。以`com.google.gson`为例,我们需要创建一个`Gson`实例,然后调用`toJson()`方法将Java对象...
- JSON字符串的格式必须正确,否则解析时会出现异常。 - 转换Java对象时,JSON字段名应与Java类的字段名相匹配(或通过注解进行映射)。 - 对于复杂类型,如嵌套的对象或数组,需要递归处理或使用`@JSONField`等注解...
这里我们将主要讨论这些工具类的使用方法以及它们在处理对象到JSON字符串和反向转换时的关键知识点。 1. Jackson库: Jackson是Java中非常流行的一个JSON处理库,它提供了`...
特别是在需要对JSON数据进行严格的类型检查和校验时,如何实现JSON字符串与实体类之间的精确匹配变得尤为重要。 #### 二、背景知识 在.NET框架中,`Newtonsoft.Json` 是一个非常流行的用于处理JSON数据的第三方库...
本篇文章将详细探讨如何在Java中将JSON字符串转换为对象,特别关注多级嵌套的情况。 在Java中,我们可以使用多种库来解析和操作JSON,如Jackson、Gson、org.json等。这里以Jackson库为例,因为它提供了强大的功能和...
本程序就是利用QT结合Rapidjson,实现了在QT5之前的版本中解析JSON字符串的功能。 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在现代Web服务和...
例如,尝试访问不存在的键或解析无效的JSON字符串都会抛出这个异常。 在给定的压缩包文件“JSON(1)”中,可能包含了多个JSON文件示例,你可以使用`JSONObject`来读取、解析和操作这些文件,实现JSON数据的拼接和...
// 序列化:Java对象转成JSON字符串 ObjectMapper mapper = new ObjectMapper(); String jsonString = mapper.writeValueAsString(yourJavaObject); // 反序列化:JSON字符串转成Java对象 YourJavaType yourObject ...
首先调用`setDataFormat2JAVA()`设置日期格式,然后利用`JSONObject.fromObject(jsonString)`将JSON字符串转换为`JSONObject`,最后通过`JSONObject.toBean(jsonObject, clazz)`将JSON对象转换为指定类型的Java对象...
Python的`json.loads()`可以将JSON字符串转为Python对象,而Java的`JSONObject`类提供了`get()`方法获取键对应的值,或者`fromJson()`方法将JSON字符串转化为指定类型的对象。 5. **操作JSON对象**: JSON库通常...
### JSON对象转换工具类 #### 简介 在Java开发过程中,经常需要处理JSON格式的数据,例如从前端接收到的请求数据、第三方接口返回的数据等。...同时,需要注意确保JSON字符串和Java对象的格式正确,避免运行时错误。
Jackson会处理Map中的所有元素,包括null值和int类型,确保它们在JSON字符串中以标准格式出现。例如: ```java String jsonString = mapper.writeValueAsString(map); ``` 3. **处理null值:** Jackson默认会将...
2. **解析JSON数据**:读取到JSON字符串后,使用`Newtonsoft.Json`库(通常通过NuGet包管理器安装)的`JsonConvert.DeserializeObject`或`JObject.Parse`方法将JSON字符串转换为.NET对象。例如: ```csharp ...
5. **序列化为JSON**:最后,使用Json.NET或其他类似库(如System.Text.Json),将这些实体类实例转换为JSON字符串。序列化时可以自定义格式,如是否包含null值、日期格式等。 在提供的"Table2Csharp"文件中,可能...
在你的代码中,你可以包含`#include <nlohmann/json.hpp>`并使用`nlohmann::json`类型来解析JSON字符串。下面是一个基本的解析过程: ```cpp #include #include #include <nlohmann/json.hpp> using json = ...
在C#中,当你需要从JSON字符串转换为.NET对象或者将.NET对象转换为JSON字符串时, LitJson提供了一个高效且方便的解决方案。其核心组件是`JsonMapper`类,它包含了将Json字符串转化为C#对象以及将C#对象转化为Json...
如果遇到任何问题,例如JSON字符串格式不正确,或者解析过程中出现异常,该文件可能会提供解决办法。 总的来说,"MyJson"库为MFC开发提供了便捷的JSON到`std::map`转换功能,避免了对其他大型JSON库的依赖,简化了...
要将 `Person` 对象转换为 JSON 字符串,可以使用 `JsonBeanSerializer`: ```java Person person = new Person(); person.setName("John"); person.setAge(30); JSONSerializer jsonSerializer = new ...