如何将动态json转换为Java类?

时间:2019-01-11 16:07:53

标签: java json

我有一个来自服务的json请求。该服务包含少量数据条目。

{
    dataPair {
       keyA : valueA
       keyB : valueB 
       ....
    }
    name: string
    addr: string
    }
}

最初我有以下pojo课

Class ServiceRequest {
    public String name;
    public String addr;
    public DataPair dataPair;
}

Class dataPair {
    public String keyA;
    public String keyB;
    //...
}

但是现在我希望dataPair是动态的,因此无论我们收到什么键值对,我们都可以在不更改类的情况下获取它。

我想知道应该如何更改dataPair类,或者是否可以生成键值对字段?

2 个答案:

答案 0 :(得分:1)

这种方法呢?

class SetupEnvironment : public ::testing::Environment
{
public:
  virtual ~SetupEnvironment();
  void SetUp() override { ... }
  void TearDown() override { ... }
};

int main(int argc, char* argv[])
{
  testing::AddGlobalTestEnvironment(new SetupEnvironment());
  return RUN_ALL_TESTS();
}

答案 1 :(得分:1)

您可以使用Retrofit 2.0吗? https://square.github.io/retrofit/ 将动态json转换为Java集合(如List或Map)很容易。 这样的pojo课将是:

Class ServiceRequest {
  public String name;
  public String addr;
  public HashMap<String, String> dataPair;
}