代码之家  ›  专栏  ›  技术社区  ›  Hector

如何预处理Java::中的Json字符串将大写字段名转换为小写大小写名称

  •  0
  • Hector  · 技术社区  · 6 年前

    我当前的Android项目使用许多Json web服务。

    我希望将此Json直接保存到我的应用程序本地域数据库中。

    问题是Json字段名都是大写的。

    我不希望我的领域DTO对象使用大写字段名,因为这是错误的。

    如何将大写字段名转换为可接受的Java字段名格式?

    是否有任何Json预处理库可以执行大写字段名的必要转换?

    我意识到我可以使用Jackson/GSON类型库来解决这个问题,但是这意味着在我能够持久化数据之前,必须先将Json转换为javapojo。

    json字段名为“ThisIsAFieldName”。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Aaron    6 年前

    我认为你应该考虑让JSON反序列化器处理这个问题,但是如果这真的不是一个可能的话,你总是可以使用好的旧字符串操作:

    String input; // your JSON input
    Pattern p = Pattern.compile("\"([A-Z])([^\"]*\"\\s*:)"); // matches '"Xxxx" :'
    Matcher m = p.matcher(input);
    StringBuffer output = new StringBuffer();
    while (m.find()) {
       m.appendReplacement(output, String.format("\"%s$2", m.group(1).toLowerCase());
    }
    m.appendTail(output);
    

    Ideone test