如何在一个json字符串中创建具有相同字段的polo

时间:2017-05-20 22:05:24

标签: java json gson

json字符串是

public class MyPojo
{
    private DB DB;

    private TS TS;

    public DB getDB ()
    {
        return DB;
    }

    public void setDB (DB DB)
    {
        this.DB = DB;
    }

    public TS getTS ()
    {
        return TS;
    }

    public void setTS (TS TS)
    {
        this.TS = TS;
    }

    @Override
    public String toString()
    {
        return "ClassPojo [DB = "+DB+", TS = "+TS+"]";
    }
}

public class DB
{
    private TS TS;

    public TS getTS ()
    {
        return TS;
    }

    public void setTS (TS TS)
    {
        this.TS = TS;
    }

    @Override
    public String toString()
    {
        return "ClassPojo [TS = "+TS+"]";
    }
}

public class TS
{
    private String name;

    private String value;

    public String getName ()
    {
        return name;
    }

    public void setName (String name)
    {
        this.name = name;
    }

    public String getValue ()
    {
        return value;
    }

    public void setValue (String value)
    {
        this.value = value;
    }

    @Override
    public String toString()
    {
        return "ClassPojo [name = "+name+", value = "+value+"]";
    }
}

它有两个相同的提交TS,但它们不是同一个密钥。如何创建polo对象。我想让gson用类解析字符串。

我创建了这些pojo对象

function test() {
    $host = "google.com";
     $result = dns_get_record("$host", DNS_A);
foreach ($result as $record) {
    echo $record['ip'];
    }
}

如何处理这两个TS对象?

1 个答案:

答案 0 :(得分:0)

如果你想保留相同的TS对象,只需添加另外两个变量即可。

public class TS {
    // ....

    private String MMPTELID;
    private String UNIQUEID;

    // ....
}

输出

MyPojo [DB = DB [TS = TS [name=null, value=null, MMPTELID=043199, UNIQUEID=43199]], TS = TS [name=abc, value=123, MMPTELID=null, UNIQUEID=null]]

这里的问题是,在一种情况下,您的对象将设置namevalue,其他变量将为null,而在另一种情况下,它将被反转。

否则,你需要另一个班级。

public class OtherTS {
    private String MMPTELID;
    private String UNIQUEID;

    // ....
}

DB班级中,将TS的变量类型更改为OtherTS

public class DB {
    private OtherTS TS;

    // ....
}

输出

MyPojo [DB = DB [TS = TS [MMPTELID=043199, UNIQUEID=43199]], TS = TS [name=abc, value=123]]