java - 如何最轻松地基于字符串填充对象?

标签 java json parsing gson

我有这个字符串:

String s = "VClass2 [id=null, provider=null, venueId=VenueID [t10=555, t1=333, id=12033], categories=[FOOD_AND_DRINK], name=מסעדת גוז׳ ודניאל , englishName=null, description=null]";

这个对象:

public class VClass2 implements Cloneable, Serializable, Externalizable {

    public String id;
    public String provider;
    @Transient
    public VenueID venueId;
    @Column(name="category")
    @Serialize(StringToArray.class)
    public String[] categories;
    public String name;
    public String englishName;
    public String description;
    @Transient
    public UserInfo lastUpdatedByInfo;

我发现它们在结构上并不完全匹配。

如何最轻松地解析字符串并填充此类的实例?

我可以操作输入字符串,但是它应该是什么样子才能使 Gson 解析顺利进行?

public class MyTest {


    Gson gson = new Gson();
    String s = "VClass2 [id=null, provider=null, venueId=VenueID [t10=555, t1=333, id=12033], categories=[FOOD_AND_DRINK], name=מסעדת גוז׳ ודניאל , englishName=null, description=null]";

    @Before
    public void setUp() throws Exception {
    }


    @Test
    public void foo()
    {
        Venue2 venue = gson.fromJson(s, VClass2.class);
    }
}

最佳答案

Gson 期望输入 JSON format 。这意味着:

  • 所有名称都必须加引号
  • 所有字符串值都必须加引号
  • 您必须使用 : 而不是 =
  • 对象必须封装在 {}
  • 您必须省略类型名称

示例:

{"id":null, "provider":null, "venueId":{"t10":555, "t1":333, ...

关于java - 如何最轻松地基于字符串填充对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25990839/

相关文章:

java - 如何横切父类的方法?

java - NoSuchMethodError : scala. collection.mutable.Buffer$.empty()Lscala/collection/GenTraversable

c++ - Casablanca C++ REST SDK 中 web::json::value::parse 和 web::json::value::string 的区别

java - 将 JSON 数据转换为 Java 对象

javascript - 如何使用 JavaScript 捕获文件路径中下划线之后的所有内容?

java - Java Mongo 聚合框架中的不同查询?

java - Spring Boot + JAX-WS 无需额外的 servlet?

javascript - 将具有相同键的 JSON 对象合并在一起

javascript - 来自 api 响应的嵌套值的解析结果

java - 使用 NekoHTML 解析 html 文档