Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.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 应为BEGIN_对象,但在第1行第1列GSON处为字符串_Java_Json_Gson - Fatal编程技术网

Java 应为BEGIN_对象,但在第1行第1列GSON处为字符串

Java 应为BEGIN_对象,但在第1行第1列GSON处为字符串,java,json,gson,Java,Json,Gson,我在查询URL并获取json对象时遇到此错误。我的json: {"status":1,"username":"admin","nombre":"Username","email":"example@example.cl","codigo_usuario":"1","hash":"2938632bfdklsngh","imagen":"05c151584cc1e9aa2985b5bd0a3a4cd2.jpeg"} 创建用户类 public class User { private int st

我在查询URL并获取json对象时遇到此错误。我的json:

{"status":1,"username":"admin","nombre":"Username","email":"example@example.cl","codigo_usuario":"1","hash":"2938632bfdklsngh","imagen":"05c151584cc1e9aa2985b5bd0a3a4cd2.jpeg"}
创建用户类

public class User {

private int status;
private String username;
private String nombre;
private String email;
private String codigo_usuario;
private String hash;
private String imagen;


public int getStatus() {
    return status;
}
public void setStatus(int status) {
    this.status = status;
}
public String getUsername() {
    return username;
}
public void setUsername(String username) {
    this.username = username;
}
public String getNombre() {
    return nombre;
}
public void setNombre(String nombre) {
    this.nombre = nombre;
}
public String getHash() {
    return hash;
}
public void setHash(String hash) {
    this.hash = hash;
}
public String getImagen() {
    return imagen;
}
public void setImagen(String imagen) {
    this.imagen = imagen;
}
public String getCodigo_usuario() {
    return codigo_usuario;
}
public void setCodigo_usuario(String codigo_usuario) {
    this.codigo_usuario = codigo_usuario;
}
public String getEmail() {
    return email;
}
public void setEmail(String email) {
    this.email = email;
}
@Override
public String toString() {
    return "User [status=" + status + ", username=" + username
            + ", nombre=" + nombre + ", email=" + email
            + ", codigo_usuario=" + codigo_usuario + ", hash=" + hash
            + ", imagen=" + imagen + "]";
}
}
在我的课堂上,我向URL发出请求,我有以下代码:

public static boolean authenticate(String username, String password){
    boolean error = false;
    User user = null;
    try {
        String request = Config.getText("URL_BASE")+Config.getText("URL_AUTHENTICATE")+username+"/"+password;
        HttpURLConnection conn = (HttpURLConnection) new URL(request).openConnection();
        conn.setRequestMethod("POST");
        conn.setRequestProperty("Accept", "application/json");

        if (conn.getResponseCode() != 200) {
            throw new Exception("Failed : HTTP error code : " + conn.getResponseCode());
        }

        user = new Gson().fromJson(new InputStreamReader(conn.getInputStream()), User.class);
        System.out.println(user.toString());
        conn.disconnect();
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    return error;
}
我得到了一个例外。我看到其他帖子也有同样的错误,大多数错误是json格式或类没有相同的字段。现在,好好检查一下,一切都会好起来的。但由于某种原因,我收到了这个错误

com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:176)
at com.google.gson.Gson.fromJson(Gson.java:803)
at com.google.gson.Gson.fromJson(Gson.java:741)
at controller.WService.authenticate(WService.java:29)
at view.Login._verificarLogin(Login.java:77)
at view.Login$2.actionPerformed(Login.java:44)

我是Java新手,尝试使用web服务进行数据和使用。我认为这是我最好的选择,但仍然不理解错误。

能否在“fromJson”之前打印服务响应并检查。很可能客户端没有得到json字符串。正如我之前打印的那样@SanjThanks@Sanj当我出于任何原因这样做时,错误是我的,laed method=POST!,GET未获取对象json