Expected a string but was BEGIN_OBJECT at line 1 column 2305 path $.items[0].author

admin

Administrator
Staff member
Hello there I have a little problem here.

<blockquote>
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException:
Expected a string but was BEGIN_OBJECT at line 1 column 2305 path
$.items[0].author
</blockquote>

they say the error is here

Code:
rssObject = new Gson().fromJson(s,RSSObject.class);

I get json from this url:

Code:
loadRSSAsync.execute("http://primariagarleni.ro/category/uncategorized/feed/json");

I made this script to get json information from my wordpress.

Here is the function that return the infromations:

Code:
private void loadRSS() {
        AsyncTask&lt;String,String,String&gt; loadRSSAsync = new AsyncTask&lt;String, String, String&gt;() {

            ProgressDialog mDialog = new ProgressDialog(MainActivity.this);

            @Override
            protected void onPreExecute() {
                mDialog.setMessage("Asteptati...");
                //mDialog.show();
            }

            @Override
            protected String doInBackground(String... params) {
                String result;
                HTTPDataHandler http = new HTTPDataHandler();
                result = http.GetHTTPData(params[0]);
                Log.v(TAG, "result=" + result);
                Log.v(TAG, "result=" + result);
                return result;
            }

            @Override
            protected void onPostExecute(String s) {
                mDialog.dismiss();
                rssObject = new Gson().fromJson(s,RSSObject.class);

                FeedAdapter adapter = new FeedAdapter(rssObject,getBaseContext());
                recyclerView.setAdapter(adapter);
                adapter.notifyDataSetChanged();
            }
        };
        String RSS_to_Json_API = "https://api.rss2json.com/v1/api.json?rss_url=";
        StringBuilder url_get_data = new StringBuilder(RSS_to_Json_API);
        String RSS_link;
        RSS_link = "http://primariagarleni.ro/category/uncategorized/feed/atom";
        url_get_data.append(RSS_link);
        loadRSSAsync.execute("http://primariagarleni.ro/category/uncategorized/feed/json");

}

This String RSS_to_Json_API = "<a href="https://api.rss2json.com/v1/api.json?rss_url=" rel="nofollow noreferrer">https://api.rss2json.com/v1/api.json?rss_url=</a>"; was the old method, but doesn't work very good because don't update the content on time.

RSSObject class

package com.gireada.garleni;

Code:
/*
 * Created by Gireada on 8/24/2017.
 */

import java.util.List;


public class RSSObject
{
    public String status;
    public Feed feed;
    public List&lt;Item&gt; items;

    public RSSObject(String status, Feed feed, List&lt;Item&gt; items) {
        this.status = status;
        this.feed = feed;
        this.items = items;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public Feed getFeed() {
        return feed;
    }

    public void setFeed(Feed feed) {
        this.feed = feed;
    }

    public List&lt;Item&gt; getItems() {
        return items;
    }

    public void setItems(List&lt;Item&gt; items) {
        this.items = items;
    }
}

Item.class

Code:
package com.gireada.garleni;

/*
 * Created by Gireada on 8/24/2017.
 */

import java.util.List;

public class Item
{
    public String title;
    public String pubDate;
    public String link;
    public String guid;
    public String author;
    public String thumbnail;
    public String description;
    public String content;
    public Object enclosure;
    public List&lt;String&gt; categories;

    public Item(String title, String pubDate, String link, String guid, String author, String thumbnail, String description, String content, Object enclosure, List&lt;String&gt; categories) {
        this.title = title;
        this.pubDate = pubDate;
        this.link = link;
        this.guid = guid;
        this.author = author;
        this.thumbnail = thumbnail;
        this.description = description;
        this.content = content;
        this.enclosure = enclosure;
        this.categories = categories;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getPubDate() {
        return pubDate;
    }

    public void setPubDate(String pubDate) {
        this.pubDate = pubDate;
    }

    public String getLink() {
        return link;
    }

    public void setLink(String link) {
        this.link = link;
    }

    public String getGuid() {
        return guid;
    }

    public void setGuid(String guid) {
        this.guid = guid;
    }

    public String getAuthor() {
        return author;
    }

    public void setAuthor(String author) {
        this.author = author;
    }

    public String getThumbnail() {
        return thumbnail;
    }

    public void setThumbnail(String thumbnail) {
        this.thumbnail = thumbnail;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }

    public Object getEnclosure() {
        return enclosure;
    }

    public void setEnclosure(Object enclosure) {
        this.enclosure = enclosure;
    }

    public List&lt;String&gt; getCategories() {
        return categories;
    }

    public void setCategories(List&lt;String&gt; categories) {
        this.categories = categories;
    }
}