GSON - JsonSyntaxException - Expected name at line 7 column 4

gson, java, jax-rs, json, rest

Solution

If this is the actual json: You have an extra comma here and a spelling error. The error says you have bad json syntax. So this is probably one of the first places to look.

{
            "objectid" : "test",
            "dtype" : "test",
            "type" : "test",
            "name " : "test",
            "description" : "test", //delete this comma
            },
            {
            "objectid" : "test",
            "dtyoe" : "test",  // spelling error
            "type" : "test",
            "name " : "test",
            "description" : "test"
    }

You also seem to be parsing two objects and telling gson you want one result object from it. Consider either parsing the objects separately or tell gson you want a result array Back

Problem

I have the following result class whose object is to be returned as JSON. ``` public class Result { public String objectid; public String dtype; public String type; public String name; public String description; public Result() { this.objectid = ""; this.dtype= ""; this.type=""; this.name= ""; this.description = ""; } public String getObjectid() { return objectid; } public void setObjectid(String s) { this.objectid = s; } public String getDtype() { return dtype; } public void setDtype(String s) { this.dtype= s; } public String getType() { return type; } public void setType(String s) { this.type = s; } public String getName() { return name; } public void setName(String s) { this.name = s; } public String getDescription() { return description; } public void setDescription(String s) { this.description = s; } } ``` I have a configuration json which is read my the main .java and returned as json as HTTP RESPONSE. It is as below: ``` { "objectid" : "test", "dtype" : "test", "type" : "test", "name" : "test", "description" : "test" // removed }, { "objectid" : "test", "dtype" : "test", "type" : "test", "name" : "test", "description" : "test" } ``` Main .java Using Gson, it reads the configuration.json file and has to return a json. My code: ``` Gson g = new Gson(); Result r = g.fromJson(res.toString(), Result.class); ``` where `res.toString()` gets me the configuration.json file content as string. My problem: I am experiencing the following exception: Exception com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: Use JsonReader.setLenient(true) to accept malformed JSON at line 7 column 3 com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: Use JsonReader.setLenient(true) to accept malformed JSON at line 7 column 3 Any pointers?

Original source