-3

I am trying to assign a JSON string to OperatorModel[] but I'm getting MalformedJsonException.

String

[{\"ProfileId\":\"69c02265-abca-4716-8a2f-ac5d642f876a\",\"DisplayName\":\"baman\",\"IsAvailable\":false,\"Image\":null},{\"ProfileId\":\"1f6bdd5b-c4ea-4566-bc56-ee2f58acece8\",\"DisplayName\":\"nayanthara\",\"IsAvailable\":false,\"Image\":null}]

OperatorModel

public class OperatorModel {
    public String ProfileId;
    public String DisplayName;
    public Boolean IsAvailable;
    public String Image;
}

Method

private void displayAllOperators(String AllOperators, String ActiveOperators){

    operatorListNew.removeAll(operatorListNew);
    Gson gson =new Gson();

    OperatorModel[] items = gson.fromJson(AllOperators, OperatorModel[].class);

    if (items.length>0){
        for (int g=0; g< items.length; g++){

        }
    }
}

Error Stack

zupportdesk.desk.zupport.chatsystem E/UncaughtException: com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: Expected name at line 1 column 3
at com.google.gson.Gson.fromJson(Gson.java:809)
at com.google.gson.Gson.fromJson(Gson.java:761)
at com.google.gson.Gson.fromJson(Gson.java:710)
at com.google.gson.Gson.fromJson(Gson.java:682)
at zupportdesk.desk.zupport.chatsystem.Operators.displayAllOperators(Operators.java:161)
at zupportdesk.desk.zupport.chatsystem.Operators.access$000(Operators.java:69)
at zupportdesk.desk.zupport.chatsystem.Operators$1.onReceive(Operators.java:146)
at android.support.v4.content.LocalBroadcastManager.executePendingBroadcasts(LocalBroadcastManager.java:297)
at android.support.v4.content.LocalBroadcastManager.access$000(LocalBroadcastManager.java:46)
at android.support.v4.content.LocalBroadcastManager$1.handleMessage(LocalBroadcastManager.java:116)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Caused by: com.google.gson.stream.MalformedJsonException: Expected name at line 1 column 3
at com.google.gson.stream.JsonReader.syntaxError(JsonReader.java:1310)
at com.google.gson.stream.JsonReader.nextInObject(JsonReader.java:739)
at com.google.gson.stream.JsonReader.peek(JsonReader.java:378)
at com.google.gson.stream.JsonReader.hasNext(JsonReader.java:349)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:166)
at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.read(TypeAdapterRuntimeTypeWrapper.java:40)
at com.google.gson.internal.bind.ArrayTypeAdapter.read(ArrayTypeAdapter.java:72)
at com.google.gson.Gson.fromJson(Gson.java:795)
at com.google.gson.Gson.fromJson(Gson.java:761) 
at com.google.gson.Gson.fromJson(Gson.java:710) 
at com.google.gson.Gson.fromJson(Gson.java:682) 
at zupportdesk.desk.zupport.chatsystem.Operators.displayAllOperators(Operators.java:161) 
at zupportdesk.desk.zupport.chatsystem.Operators.access$000(Operators.java:69) 
at zupportdesk.desk.zupport.chatsystem.Operators$1.onReceive(Operators.java:146) 
at android.support.v4.content.LocalBroadcastManager.executePendingBroadcasts(LocalBroadcastManager.java:297) 
at android.support.v4.content.LocalBroadcastManager.access$000(LocalBroadcastManager.java:46) 
at android.support.v4.content.LocalBroadcastManager$1.handleMessage(LocalBroadcastManager.java:116) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:148) 
at android.app.ActivityThread.main(ActivityThread.java:5417) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
Lyubomyr Shaydariv
  • 20,327
  • 12
  • 64
  • 105
Sathya Baman
  • 3,424
  • 7
  • 44
  • 77

2 Answers2

1

Your json string is not valid.Json string always start with JsonObject not JsonArray ex.{"ss":[]}

please check your json is valid or not here

Valid json like below

{
    "array_name": [{
        "ProfileId": "69c02265-abca-4716-8a2f-ac5d642f876a",
        "DisplayName": "baman",
        "IsAvailable": false,
        "Image": null
    }, {
        "ProfileId": "1f6bdd5b-c4ea-4566-bc56-ee2f58acece8",
        "DisplayName": "nayanthara",
        "IsAvailable": false,
        "Image": null
    }]
}

create your json Pojo class here

Bhupat Bheda
  • 1,968
  • 1
  • 8
  • 13
0

Try to change

THIS

[{\"ProfileId\":\"69c02265-abca-4716-8a2f-ac5d642f876a\",\"DisplayName\":\"baman\",\"IsAvailable\":false,\"Image\":null},{\"ProfileId\":\"1f6bdd5b-c4ea-4566-bc56-ee2f58acece8\",\"DisplayName\":\"nayanthara\",\"IsAvailable\":false,\"Image\":null}]

TO

[{"ProfileId":"69c02265-abca-4716-8a2f-ac5d642f876a","DisplayName":"baman","IsAvailable":false,"Image":null},{"ProfileId":"1f6bdd5b-c4ea-4566-bc56-ee2f58acece8","DisplayName":"nayanthara","IsAvailable":false,"Image":null}]
Amy
  • 4,034
  • 1
  • 20
  • 34