-1

Hi guys I have a JSONArray that doesn't have key or "title" as follows

[
{
    "messages_PK_ID": 429,
    "messages_Name": "اختبار المنهج التأسيسي1",
    "messages_ToSendDateDiff": 365,
    "message_URL": "<p style=\"text-align: center;\"><a href=\"http://www.iacademypd.com/LevelExamLogin.aspx\"><img alt=\"\" src=\"http://iacademypd.com/AttachFiles/Level1.jpg\" /></a></p>",
    "messageType_Name": "بطاقة",
    "message_FKID_MessageType": 1,
    "sendEmailAuditTrial_DayNo": 365,
    "sendEmailAuditTrial_Type": 1,
    "sendEmailAuditTrial_Datetime": "2012-02-24T10:05:39.587",
    "messages_Year": 1,
    "message_URL_New": "http://www.iacademypd.com/LevelExamLogin.aspx"
},
{
    "messages_PK_ID": 428,
    "messages_Name": "البطاقة/364",
    "messages_ToSendDateDiff": 364,
    "message_URL": "<p><img alt=\"\" src=\"http://iacademypd.com/AttachFiles/card-364aaa.jpg\" /></p>",
    "messageType_Name": "بطاقة",
    "message_FKID_MessageType": 1,
    "sendEmailAuditTrial_DayNo": 364,
    "sendEmailAuditTrial_Type": 1,
    "sendEmailAuditTrial_Datetime": "2012-02-24T10:05:39.58",
    "messages_Year": 1,
    "message_URL_New": "http://iacademypd.com/AttachFiles/card-364aaa.jpg"
},....and so on 

How can I access each object in the array, all the examples I have seen include a title or name before the list, but this one doesn't have a name so I can specify in JSONArray

Any suggestions ?

Artem Mostyaev
  • 3,874
  • 10
  • 53
  • 60
ahmed jallad
  • 161
  • 1
  • 11

2 Answers2

0

Please Use RoboPojo Generator into Android Studio it will helps you to create model class for you and directly setData to your model class.

if you are using Gson to setData.

Below ilink is helping to you :

https://github.com/robohorse/RoboPOJOGenerator

hope this helps you.

Jyubin Patel
  • 1,373
  • 7
  • 17
  • how can i set data to model class, i get the response in string how can i access each element of string https://stackoverflow.com/users/4315695/jyubin-patel – ahmed jallad Dec 15 '17 at 12:12
  • Gson gson = new Gson(); yourModel character = gson.fromJson(strResponse, yourModel.class); if you are already creating model then usedabove code to set data. – Jyubin Patel Dec 15 '17 at 12:18
  • when your questions solved upvote it and close it – Jyubin Patel Dec 15 '17 at 12:19
  • it prompts this error Unhandled exception com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 2 path $ com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 2 path $ – ahmed jallad Dec 15 '17 at 13:12
  • Please generate your model class using above RoboPojo generator plugin. – Jyubin Patel Dec 15 '17 at 13:13
  • i did that already, ?? – ahmed jallad Dec 15 '17 at 13:16
  • Please make your model class using RoboPojo generator and after directly set into my above code. – Jyubin Patel Dec 15 '17 at 13:21
  • man i already did that, but the error has nothing with pojo, it's becuase my string is type of array, not object – ahmed jallad Dec 15 '17 at 13:26
0

Using Gson Library to parse this json easiest way

compile 'com.google.code.gson:gson:2.8.1'

Use think to parse http://www.jsonschema2pojo.org/

You will get pojo class like this 1.User.Java

    public class User {

    @SerializedName("messages_PK_ID")
    @Expose
    private Integer messagesPKID;
    @SerializedName("messages_Name")
    @Expose
    private String messagesName;
    @SerializedName("messages_ToSendDateDiff")
    @Expose
    private Integer messagesToSendDateDiff;
    @SerializedName("message_URL")
    @Expose
    private String messageURL;
    @SerializedName("messageType_Name")
    @Expose
    private String messageTypeName;
    @SerializedName("message_FKID_MessageType")
    @Expose
    private Integer messageFKIDMessageType;
    @SerializedName("sendEmailAuditTrial_DayNo")
    @Expose
    private Integer sendEmailAuditTrialDayNo;
    @SerializedName("sendEmailAuditTrial_Type")
    @Expose
    private Integer sendEmailAuditTrialType;
    @SerializedName("sendEmailAuditTrial_Datetime")
    @Expose
    private String sendEmailAuditTrialDatetime;
    @SerializedName("messages_Year")
    @Expose
    private Integer messagesYear;
    @SerializedName("message_URL_New")
    @Expose
    private String messageURLNew;

    public Integer getMessagesPKID() {
    return messagesPKID;
    }

    public void setMessagesPKID(Integer messagesPKID) {
    this.messagesPKID = messagesPKID;
    }

    public String getMessagesName() {
    return messagesName;
    }

    public void setMessagesName(String messagesName) {
    this.messagesName = messagesName;
    }

    public Integer getMessagesToSendDateDiff() {
    return messagesToSendDateDiff;
    }

    public void setMessagesToSendDateDiff(Integer messagesToSendDateDiff) {
    this.messagesToSendDateDiff = messagesToSendDateDiff;
    }

    public String getMessageURL() {
    return messageURL;
    }

    public void setMessageURL(String messageURL) {
    this.messageURL = messageURL;
    }

    public String getMessageTypeName() {
    return messageTypeName;
    }

    public void setMessageTypeName(String messageTypeName) {
    this.messageTypeName = messageTypeName;
    }

    public Integer getMessageFKIDMessageType() {
    return messageFKIDMessageType;
    }

    public void setMessageFKIDMessageType(Integer messageFKIDMessageType) {
    this.messageFKIDMessageType = messageFKIDMessageType;
    }

    public Integer getSendEmailAuditTrialDayNo() {
    return sendEmailAuditTrialDayNo;
    }

    public void setSendEmailAuditTrialDayNo(Integer sendEmailAuditTrialDayNo) {
    this.sendEmailAuditTrialDayNo = sendEmailAuditTrialDayNo;
    }

    public Integer getSendEmailAuditTrialType() {
    return sendEmailAuditTrialType;
    }

    public void setSendEmailAuditTrialType(Integer sendEmailAuditTrialType) {
    this.sendEmailAuditTrialType = sendEmailAuditTrialType;
    }

    public String getSendEmailAuditTrialDatetime() {
    return sendEmailAuditTrialDatetime;
    }

    public void setSendEmailAuditTrialDatetime(String sendEmailAuditTrialDatetime) {
    this.sendEmailAuditTrialDatetime = sendEmailAuditTrialDatetime;
    }

    public Integer getMessagesYear() {
    return messagesYear;
    }

    public void setMessagesYear(Integer messagesYear) {
    this.messagesYear = messagesYear;
    }

    public String getMessageURLNew() {
    return messageURLNew;
    }

    public void setMessageURLNew(String messageURLNew) {
    this.messageURLNew = messageURLNew;
    }

    }

After Parsed the json you have to use the parsing like this

     Gson mGson=new Gson();
     ArrayList<User>  userArrayList=new ArrayList<>();
     JsonArray jsonElements=new JsonArray("your Json Array");
     for (int i = 0; i < jsonElements.size(); i++) {
     User user=new User();
     user=mGson.fromJson(jsonElements.get(i).getJsonObject().toString(),User.class);
     userArrayList.add(user);
     }

//you can access like this userArrayList.get(0).getMessagesName(); //first object item

Like Above you can access the response pojo.

Ramesh sambu
  • 3,577
  • 2
  • 24
  • 39