如何将该json字符串转换为我的班级

时间:2016-02-25 13:17:05

标签: gson

我有一个json字符串,其数据如下:

description: { "en" : "english desc", "es": "spanish description" }

此字段位于我的Item类中,但它是一个字符串:

class Item

private String description;

我正在使用GSON来解析这个Json。我收到错误,因为Json字符串中的数据不是字符串。它是一个JSON对象。

我应该给出一个默认语言的参数(例如en),它应该被解析为:

description =  "english desc"

我该怎么做?

1 个答案:

答案 0 :(得分:0)

描述应该是一个复合对象,它根据您的输入字符串包含en和es字符串字段。 参考例如。

import com.google.gson.Gson;

public class Demo1 {

    class Item {

        Description description;

        public Description getDescription() {
            return description;
        }

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

        @Override
        public String toString() {
            return "Item [" + description + "]";
        }

        class Description {
            String en;
            String es;

            public String getEn() {
                return en;
            }

            public void setEn(String en) {
                this.en = en;
            }

            public String getEs() {
                return es;
            }

            public void setEs(String es) {
                this.es = es;
            }

            @Override
            public String toString() {
                return "Description [en=" + en + ", es=" + es + "]";
            }

        }
    }

    public static void main(final String[] args) {

        String json = "{ description: { \"en\" : \"english desc\", \"es\": \"spanish description\" } }";

        Gson gson = new Gson();
        Item i = gson.fromJson(json, Item.class);
        System.out.println("item:" + i);
    }
}