`

json 字符串转Object 时出现异常

    博客分类:
  • java
 
阅读更多

解决: 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;
 }
}

 

 


 

 

 

分享到:
评论

相关推荐

    asp字符串转json对象类

    2. **解析JSON对象**:逐个解析JSON字符串中的键值对,创建一个内部数据结构来存储这些键值对,如数组或自定义的Object类实例。 3. **创建访问接口**:为这个数据结构提供类似"obj("name")"的访问方法,这可能涉及...

    json字符串转换c++类对象

    在C++编程中,将JSON字符串转换为C++类对象是一项常见的任务,特别是在处理网络通信、数据存储或配置文件时。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析...

    模仿json,根据对象生成json字符串,根据字符串生成对象

    1. **对象转JSON字符串**:这个过程也被称为序列化。在Java中,我们可以使用`org.json`库或者`com.google.gson`库来实现。以`com.google.gson`为例,我们需要创建一个`Gson`实例,然后调用`toJson()`方法将Java对象...

    JSON字符转JSON对象

    - JSON字符串的格式必须正确,否则解析时会出现异常。 - 转换Java对象时,JSON字段名应与Java类的字段名相匹配(或通过注解进行映射)。 - 对于复杂类型,如嵌套的对象或数组,需要递归处理或使用`@JSONField`等注解...

    java 对象与json字符串互相转换工具类

    这里我们将主要讨论这些工具类的使用方法以及它们在处理对象到JSON字符串和反向转换时的关键知识点。 1. Jackson库: Jackson是Java中非常流行的一个JSON处理库,它提供了`...

    关于json字符串与实体之间的严格验证代码.docx

    特别是在需要对JSON数据进行严格的类型检查和校验时,如何实现JSON字符串与实体类之间的精确匹配变得尤为重要。 #### 二、背景知识 在.NET框架中,`Newtonsoft.Json` 是一个非常流行的用于处理JSON数据的第三方库...

    json转对象(java 多级嵌套)

    本篇文章将详细探讨如何在Java中将JSON字符串转换为对象,特别关注多级嵌套的情况。 在Java中,我们可以使用多种库来解析和操作JSON,如Jackson、Gson、org.json等。这里以Jackson库为例,因为它提供了强大的功能和...

    QT写的用rapidjson解析json字符串的程序

    本程序就是利用QT结合Rapidjson,实现了在QT5之前的版本中解析JSON字符串的功能。 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在现代Web服务和...

    JSONObject:一款强大的JSON工具,支持Json文件拼接

    例如,尝试访问不存在的键或解析无效的JSON字符串都会抛出这个异常。 在给定的压缩包文件“JSON(1)”中,可能包含了多个JSON文件示例,你可以使用`JSONObject`来读取、解析和操作这些文件,实现JSON数据的拼接和...

    json格式转换的jar包

    // 序列化:Java对象转成JSON字符串 ObjectMapper mapper = new ObjectMapper(); String jsonString = mapper.writeValueAsString(yourJavaObject); // 反序列化:JSON字符串转成Java对象 YourJavaType yourObject ...

    处理JSON日期转换

    首先调用`setDataFormat2JAVA()`设置日期格式,然后利用`JSONObject.fromObject(jsonString)`将JSON字符串转换为`JSONObject`,最后通过`JSONObject.toBean(jsonObject, clazz)`将JSON对象转换为指定类型的Java对象...

    JSON库使用DEMO

    Python的`json.loads()`可以将JSON字符串转为Python对象,而Java的`JSONObject`类提供了`get()`方法获取键对应的值,或者`fromJson()`方法将JSON字符串转化为指定类型的对象。 5. **操作JSON对象**: JSON库通常...

    JSON对象转换工具类

    ### JSON对象转换工具类 #### 简介 在Java开发过程中,经常需要处理JSON格式的数据,例如从前端接收到的请求数据、第三方接口返回的数据等。...同时,需要注意确保JSON字符串和Java对象的格式正确,避免运行时错误。

    json和map互转的标准化实现

    Jackson会处理Map中的所有元素,包括null值和int类型,确保它们在JSON字符串中以标准格式出现。例如: ```java String jsonString = mapper.writeValueAsString(map); ``` 3. **处理null值:** Jackson默认会将...

    json格式转txt格式实力

    2. **解析JSON数据**:读取到JSON字符串后,使用`Newtonsoft.Json`库(通常通过NuGet包管理器安装)的`JsonConvert.DeserializeObject`或`JObject.Parse`方法将JSON字符串转换为.NET对象。例如: ```csharp ...

    word表格转json

    5. **序列化为JSON**:最后,使用Json.NET或其他类似库(如System.Text.Json),将这些实体类实例转换为JSON字符串。序列化时可以自定义格式,如是否包含null值、日期格式等。 在提供的"Table2Csharp"文件中,可能...

    C++ JSON格式的字符串解析

    在你的代码中,你可以包含`#include &lt;nlohmann/json.hpp&gt;`并使用`nlohmann::json`类型来解析JSON字符串。下面是一个基本的解析过程: ```cpp #include #include #include &lt;nlohmann/json.hpp&gt; using json = ...

    MFC,C++,C语言 json转换成std::map源码,无需编译,无需关心引用位置,直接引用即可使用

    如果遇到任何问题,例如JSON字符串格式不正确,或者解析过程中出现异常,该文件可能会提供解决办法。 总的来说,"MyJson"库为MFC开发提供了便捷的JSON到`std::map`转换功能,避免了对其他大型JSON库的依赖,简化了...

    使用json-lib实现json与Java对象的互转

    要将 `Person` 对象转换为 JSON 字符串,可以使用 `JsonBeanSerializer`: ```java Person person = new Person(); person.setName("John"); person.setAge(30); JSONSerializer jsonSerializer = new ...

    JSON的String字符串与Java的List列表对象的相互转换

    反过来,若需要将Java对象的List转换为JSON字符串,可以先将List转换为JSONArray对象,然后调用`toString()`方法得到JSON字符串。 ```java JSONArray jsonArray = JSONArray.fromObject(list); String jsonString =...

Global site tag (gtag.js) - Google Analytics