java - 无法为 map 设置正确的 JSON 格式

标签 java json

我正在尝试传递 JSON,但无法为其提供正确的格式,因此在读取时会出现错误。

Map<String, List<PojoClass>> mapObj = (Map<String, List<PojoClass>>) input.getData();

基本上从以下位置获取数据:

protected Map<String, List<Data>> data;

   public Map<String, List<Data>> getdata() {
      return data;
   } 

在 PojoClass 中,假设我们有一些变量,命名为姓名、地址、电话等。

错误:

> nested exception is
> com.fasterxml.jackson.databind.JsonMappingException: Can not
> deserialize instance of java.util.LinkedHashMap out of START_ARRAY
> token\n at [Source: java.io.PushbackInputStream@453fc83a; line: 7,
> column: 27] (through reference chain:
> co.age.ning.mon.dto.PojoClass[\"data\"])"

JSON:

"data": [
    {
      "key": [
        {
          "id": "id_1",
          "time": "1",
          "code": "xx",
          "val": "ty",
          "op": "false"
        }
      ]
    }
  ]

最佳答案

这可以通过 org.json.JSONObject "JSONObject.wrap([object])"来完成

import org.json.JSONObject;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;

public class Pojo {

public String name;
public String address;
public String contactNo;


JSONObject toJsonObject(){
    return (JSONObject) JSONObject.wrap(this);
}

void convertMap(){
    Map<String,List<Pojo>> map = new HashMap<>();
    List<Pojo> list = new LinkedList<>();
    list.add(new Pojo());

    map.put("one",list);
    for(Map.Entry entry : map.entrySet()){
        for(Pojo expression : (List<Pojo>) entry.getValue()){
            JSONObject object = expression.toJsonObject();
        }
    }

}

}

关于java - 无法为 map 设置正确的 JSON 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41277871/

相关文章:

java - 从 csv 读取值并将占位符替换到模板中

java - 将同一组方法推广到不同的变量

java - 在java中查找服务器响应时间

java - 如何在不循环键的情况下检查嵌套 json 对象的键名称是否包含数字/特殊字符?

java - 使用 gson 将 JSON 转换为 java 对象

asp.net-mvc - 如何将 JSON.NET 作为 ASP.NET MVC Controller 的模型绑定(bind)程序?

json - 在 Python 中解析 HTTP 响应

java - 当相机平移时, Sprite 不会跟随 box2d 主体,但如果相机在 libgdx 中是静态的,则效果良好

java - 使用 selenium-webdriver 运行测试时访问远程计算机剪贴板上的数据

json - 选择特定字段并从 jsonb 字段中的数组获取结果