GSON无法使用字符串空间解析JSON

克里斯托弗

我有以下对象:

public class ParameterWrapper<T> {

    private String type;

    private T value;

    public ParameterWrapper(String type, T value) {
        this.type = type;
        this.value = value;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public T getValue() {
        return value;
    }

    public void setValue(T value) {
        this.value = value;
    }
}

我正在使用Gson库将其序列化为JSON。value包含没有空格的字符串时,它可以完美工作。value包含带空格的字符串时,我看到以下异常:

com.google.gson.JsonSyntaxException:com.google.gson.stream.MalformedJsonException:第1行第28列的未终止对象

对于以下JSON:

{"Plaintext":{"type":"String","value":"hello there"},"Key":{"type":"Number","value":"1"},"SINGLE_FUNCTION":{"value":"1-0"}}

但是具有以下内容:

{"Plaintext":{"type":"String","value":"hellothere"},"Key":{"type":"Number","value":"1"},"SINGLE_FUNCTION":{"value":"1-0"}}

JSON已成功解析。这是一个已知的问题?我已经通过验证器运行了JSON,这非常好。

编辑:

问题的模糊性并没有被忽视。我希望这是一个现有问题。应用程序非常庞大,这就是为什么很难举起一个小的可编译示例的问题,但是我会尽我所能!

好的。因此,首先,以下JSON发送到我的控制器:

@RequestMapping("/update-state")
public
@ResponseBody
String updateState(@RequestParam(value = "algorithmId") String algorithmId,
                   @RequestParam(value = "state") String state) throws InvalidParameterException {

    Algorithm algorithm = algorithmService.getAlgorithmById(Integer.parseInt(algorithmId));
    algorithm.execute(executorService.parseAlgorithmState(state));

    return gsonBuilder.toJson(algorithm.getState().getParameterMap());
}

在对的调用中parseAlgorithmState(state),它向下移至此方法:

@Override
public AlgorithmState parseAlgorithmState(String json) throws InvalidParameterException {
    Gson gson = new Gson();
    Map keyValueMap = (Map) gson.fromJson(json.trim(), Object.class);
    ...

该行Map keyValueMap = (Map) gson.fromJson(json.trim(), Object.class);是最初发生异常的地方。

理查德·安德森

我只是有同样的问题。问题在于该字符是一个不间断的字符char(160)。如果使用POSTMAN将其粘贴到请求的正文中,则可以直观地看到字符(它们看起来像灰点)。Gson不喜欢他们。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用 Gson 解析 Json 字符串给我错误

Gson-使用数组或字符串的字段解析json

使用字符串方法解析字符串

使用jq解析JSON数据时出现错误消息“无法使用字符串“标题”索引数组”

jq:错误无法用字符串索引字符串。如何使用 jq 解析具有可变对象值的 json 文件

使用jq进行初学者解析-无法使用字符串索引数组

Gson 无法将位于 json 对象中的 json 数组字符串解析为 JsonArray

无法解析AGPBI:{“种类”:“错误”,“文本”:“不允许使用字符串类型

Gson无法在Kotlin中解析字符串json格式的数据

android,gson无法将json字符串解析为java对象

使用GSON创建JSON字符串

无法使用JSON.parse解析字符串

使用Python解析Web数据(使用字符串)

仅使用字符串和值解析JSON对象

使用字符串定界符解析整数

JavaScript 无法解析从 Java 使用 Gson 序列化的字符串

将json解析为Gson中的字符串

返回字符串解析JSON(格式GSON)

无法使用字符串插值访问 Firestore 数据的 JSON 属性

使用GSON不会解析字段,仅将其保留为json原始字符串

使用Gson将JSON字符串解析为Dictionary <String,Integer>

使用GSON解析不包含数组名称的JSON字符串

Django Q无法使用字符串和DRF

无法使用字符串变量“索引类型”

jq:无法使用字符串索引数组

LINQ无法在Xamarin中使用字符串吗?

jq:错误:无法使用字符串索引数组

for循环内的JS DOM无法使用字符串

无法使用字符串创建NSUUID