无法为Map格式化正确的JSON

时间:2016-12-22 07:31:21

标签: java json

我正在尝试传递JSON但我无法给它一个正确的格式,因为它在阅读时会给出错误。

 string text = "Name: Scenario_48_12/19/2016 1:30:42 AM, Test result : True";
        var m = new Regex(@"(\d+)[:.](\d+)[:.](\d+)").Match(text);
        if (m.Success)
        {
            TimeSpan d = TimeSpan.Parse(m.Value);
        }

基本上从以下方式获取数据:

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

在PojoClass中我们可以想象我们有一些变量命名名称,地址,电话等。

错误:

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

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

JSON:

> 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\"])"

1 个答案:

答案 0 :(得分:2)

这可以使用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();
        }
    }

}

}