Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.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 在servlet中读取JSON时超出起始\u数组标记_Java_Jackson - Fatal编程技术网

Java 在servlet中读取JSON时超出起始\u数组标记

Java 在servlet中读取JSON时超出起始\u数组标记,java,jackson,Java,Jackson,我必须从servlet中接收的JSON字符串创建Java对象 下面是JSON [{"name":"name","value":"Shital"},{"name":"email","value":"swankhade@gmail.com"},{"name":"contactno","value":"9920042776"},{"name":"Address","value":"a6 102 Elementa"}] 我试图通过将[by{和]替换为}来更改JSON,但它给出了一些其他错误。 我得到异

我必须从servlet中接收的JSON字符串创建Java对象 下面是JSON

[{"name":"name","value":"Shital"},{"name":"email","value":"swankhade@gmail.com"},{"name":"contactno","value":"9920042776"},{"name":"Address","value":"a6 102 Elementa"}]
我试图通过将[by{和]替换为}来更改JSON,但它给出了一些其他错误。 我得到异常的jackson代码是

// 2. initiate jackson mapper
                ObjectMapper mapper = new ObjectMapper();
// 3. Convert received JSON to Article
                Enrole enrole = mapper.readValue(json, Enrole.class);
Enroll类是带有setter和getter的简单bean类

public class Enrole {
    private String name;
    private String email;
    private long contactno;
    private String address;
这是一种方式

try {
            ObjectMapper mapper = new ObjectMapper();
            String json = "[{\"name\":\"name\",\"value\":\"Shital\"},{\"name\":\"email\",\"value\":\"swankhade@gmail.com\"},{\"name\":\"contactno\",\"value\":\"9920042776\"},{\"name\":\"Address\",\"value\":\"a6 102 Elementa\"}]";
            KeyValue[] jsonObjArr = mapper.readValue(json, KeyValue[].class);
            Enrole enrol = new Enrole();
            for (int i = 0; i < jsonObjArr.length; i++) {

                KeyValue keyVal = jsonObjArr[i];
                if ("name".equals(keyVal.getName())) {
                    enrol.setName(keyVal.getValue());
                }
                if ("email".equals(keyVal.getName())) {
                    enrol.setEmail(keyVal.getValue());
                }
                if ("contactno".equals(keyVal.getName())) {
                    enrol.setContactno(Long.parseLong(keyVal.getValue()));
                }
                if ("address".equals(keyVal.getName())) {
                    enrol.setAddress(keyVal.getValue());
                }
            }
            System.out.println(enrol.getName());
            System.out.println(enrol.getContactno());
            System.out.println(enrol.getAddress());
            System.out.println(enrol.getEmail());
        } catch (Exception e) {
            System.out.println("Exception " + e);
        }
模范班

class Enrole {
    private String name;
    private String email;
    private long contactno;
    private String address;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public long getContactno() {
        return contactno;
    }

    public void setContactno(long contactno) {
        this.contactno = contactno;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }
}
这是一种方式

try {
            ObjectMapper mapper = new ObjectMapper();
            String json = "[{\"name\":\"name\",\"value\":\"Shital\"},{\"name\":\"email\",\"value\":\"swankhade@gmail.com\"},{\"name\":\"contactno\",\"value\":\"9920042776\"},{\"name\":\"Address\",\"value\":\"a6 102 Elementa\"}]";
            KeyValue[] jsonObjArr = mapper.readValue(json, KeyValue[].class);
            Enrole enrol = new Enrole();
            for (int i = 0; i < jsonObjArr.length; i++) {

                KeyValue keyVal = jsonObjArr[i];
                if ("name".equals(keyVal.getName())) {
                    enrol.setName(keyVal.getValue());
                }
                if ("email".equals(keyVal.getName())) {
                    enrol.setEmail(keyVal.getValue());
                }
                if ("contactno".equals(keyVal.getName())) {
                    enrol.setContactno(Long.parseLong(keyVal.getValue()));
                }
                if ("address".equals(keyVal.getName())) {
                    enrol.setAddress(keyVal.getValue());
                }
            }
            System.out.println(enrol.getName());
            System.out.println(enrol.getContactno());
            System.out.println(enrol.getAddress());
            System.out.println(enrol.getEmail());
        } catch (Exception e) {
            System.out.println("Exception " + e);
        }
模范班

class Enrole {
    private String name;
    private String email;
    private long contactno;
    private String address;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public long getContactno() {
        return contactno;
    }

    public void setContactno(long contactno) {
        this.contactno = contactno;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }
}
看看。您需要创建列表类型:
CollectionType collType=mapper.getTypeFactory().constructioncollectiontype(list.class,Enrole.class)
并在
readValue
方法中使用它:
list users=mapper.convertValue(节点,collType)查看。您需要创建列表类型:
CollectionType collType=mapper.getTypeFactory().constructioncollectiontype(list.class,Enrole.class)
并在
readValue
方法中使用它:
list users=mapper.convertValue(节点,collType)