Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从JSON字符串中删除双引号_Java_Json_Jackson - Fatal编程技术网

Java 从JSON字符串中删除双引号

Java 从JSON字符串中删除双引号,java,json,jackson,Java,Json,Jackson,下面是JSON字符串: {学生:[{\studentId\:\A1\,\studentNumber\ :\287\,\studentType\:\FullTime\}]} 为了在java对象中反序列化这个字符串,我必须删除\可以使用字符串替换方法来完成。除此之外,前面[和后面]也有双引号。在使用Jackson进行反序列化时,如何删除或允许这些双引号。您不必自己做,Jackson会处理。创建一个pojo类学生,您可以编写如下内容: ObjectMapper mapper = new ObjectM

下面是JSON字符串:

{学生:[{\studentId\:\A1\,\studentNumber\ :\287\,\studentType\:\FullTime\}]}
为了在java对象中反序列化这个字符串,我必须删除\可以使用字符串替换方法来完成。除此之外,前面[和后面]也有双引号。在使用Jackson进行反序列化时,如何删除或允许这些双引号。

您不必自己做,Jackson会处理。创建一个pojo类学生,您可以编写如下内容:

ObjectMapper mapper = new ObjectMapper();
Student student = mapper.readValue(responseBody, Student.class);
尝试用[和]替换[和]

json=json.replaceAll\\\\[,[; json=json.replaceAll\\]\,]

与ObjectMapper一样,我们也可以使用Gson实现同样的目的

Gson gson = new Gson();
gson.fromJson(responseBody, Student.class);
}


上面使用GSON字符串适配器从字符串中删除引号

如果任何字段中有包含反斜杠的数据,如:studentNumber:2016\287,该怎么办?仍然要替换字符串吗?请改用JSON解析。它应该从json字符串创建对象。不会有任何带有反斜杠的数据。这里主要关心的是之前[和之后]。这个问题的答案将对您有所帮助。我做了同样的事情,但是因为在它给出错误之前[和之后]有额外的\和引号。我使用replace方法删除了\但无法删除[和]之前和之后的引号。下面的字符串可以很好地使用我的代码:{studentId:A1,studentNumber:287,studentType:FullTime}}这很好。只有一个问题。。为什么我们要在[and]之前添加\\。这是一种可能会在非平凡情况下中断的攻击。如果student对象中的任何内容包含json转义字符(例如引号),则我怀疑反序列化的数据将是错误的,这将是双转义或[或]。
public class StringTypeSerializationAdapter extends TypeAdapter<String> {


public String read(JsonReader reader) {
    throw new UnsupportedOperationException();
}

public void write(JsonWriter writer, String value) throws IOException {
    if (value == null) {
        writer.nullValue();
        return;
    }
    writer.jsonValue(value);
}