Java JsonParseException:意外字符(';{';(代码123)):应以双引号开头
Json字符串Java JsonParseException:意外字符(';{';(代码123)):应以双引号开头,java,json,Java,Json,Json字符串 String field="[{" + "{\"key\":\"cloud\",\"value\":[\"AWS\"],\"search\":\"EQUALITY\"}" + ",{\"key\":\"region\",\"valu
String field="[{"
+ "{\"key\":\"cloud\",\"value\":[\"AWS\"],\"search\":\"EQUALITY\"}"
+ ",{\"key\":\"region\",\"value\":[\"US EAST1\"],\"search\":\"EQUALITY\"}"
+ "}]";
导致错误的代码:
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
ObjectMapper mapper = new ObjectMapper();
mapper.readValue(field, ComputeResourceInputVO[].class)
相关类
public class ComputeResourceInputVO implements Serializable {
public ComputeResourceInputField[] computeResourceInputField;
}
class ComputeResourceInputField implements Serializable {
public String[] value;
public String search;
public String key;
}
错误:
由以下原因引起:com.fasterxml.jackson.core.JsonParseException:意外字符(“{”(代码123)):应在字段名开头加双引号
String field="[{" // 1st open curly
// second line starts with another curly
+ "{\"key\":\"cloud\",\"value\":[\"AWS\"],\"search\":\"EQUALITY\"}"
+ ...
将第一行更改为:
String field="[" // extra open curly removed
并删除json中的最后一个结束卷曲。查看-->mapper.readValue行(字段,ComputerSourceInputVO[].class)
这意味着json字段需要映射到ComputerSourceInputVO的数组
下一步:
在类ComputerSourceInputVO中,您有一个ComputerSourceInputField数组
在计算机资源输入字段中定义了属性
因此,对于这种类型的代码,字段json字符串的格式不正确
你应该有这样的东西
[{"computeResourceInputField":[{"value":["String1","String2"],"search":"USEAST","key":"A"},{"value":["String3","String4"],"search":"USWEST","key":"B"}]}]
我想构造一个
ComputeResourceInputVO
数组。其中ComputeResourceInputVO
将包含一个ComputeResourceInputField
数组。您能纠正我的Json吗请纠正我为数组添加的第一个[]和第一个{}用于ComputeResourceInputVO
和我为ComputeResourceInputField
@upog no添加的第二个花括号。[]
定义了一个数组。数组内部应该是{“key”:“foo”,…}
针对每个对象的字段。尝试执行我在回答中建议的无效JSON,因此我建议您学习JSON。一旦您认为您已修复JSON,请验证您的JSON以确保,例如,使用类似的在线验证程序。