我已经创建了客户json文件,如下所示:
[{"firstName":"test","lastName":"temp","age": 35,"emailAddress":"test@Gmail.com","Address":{"Street Address":"test test","city":"city","postCode":"12343546","state":"state","Country":"cy","County":"abc"},"phoneNumber":{"home":"012345678","mob":"0987654321" } }, { "firstName":"tug","lastName":"kjk","age": 35,"emailAddress":"jhgj@Gmail.com","Address":{"Street Address":"jh hjgjhg,"city":"kjhjh","postCode":"122345","state":"jhgl","Country":"jaj","County":"jhgkg"},"phoneNumber":{"home":"012345678","mob":"0987654321" } } ]
对于客户 JSON 数据文件,我创建了以下 JSON 数据读取器类:
public class JsonDataReader {
private final String customerFilePath = new ConfigFileReader().getTestDataResourcePath() + "Customer.json";
private List<Customer> customerList;
public JsonDataReader(){
customerList = getCustomerData();
}
private List<Customer> getCustomerData() {
Gson gson = new Gson();
BufferedReader bufferReader = null;
try {
bufferReader = new BufferedReader(new FileReader(customerFilePath));
Customer[] customers = gson.fromJson(bufferReader, Customer[].class);
return Arrays.asList(customers);
}catch(FileNotFoundException e) {
throw new RuntimeException("Json file not found at path : " + customerFilePath);
}finally {
try { if(bufferReader != null) bufferReader.close();}
catch (IOException ignore) {}
}
}
public final Customer getCustomerByName(String customerName){
for(Customer customer : customerList) {
if(customer.firstName.equalsIgnoreCase(customerName)) return customer;
}
return null;
}
}
创建的POJO类如下:
public class Customer {
public String firstName;
public String lastName;
public int age;
public String emailAddress;
public Address address;
public PhoneNumber phoneNumber;
public class Address {
public String streetAddress;
public String city;
public String postCode;
public String state;
public String country;
public String county;
}
public class PhoneNumber {
public String home;
public String mob;
}
}
到目前为止,只有一个JSON数据文件,这很好,但是我将创建更多的JSON数据文件,所以可能我必须为每个文件创建多个POJOs,但是有什么方法可以为所有这些JSON文件编写通用的jsondatareader类呢?
如果是这样的话,为什么不把JSON转换成Map而不是POJO呢!如果你走POJO路线,那么你将在你的代码基础中大量使用Jackson或GSon,添加一堆实用方法来迭代每个结果JSonArray或JSonelements。
类(或
Object
)是定义良好的实体。定义良好的意思是,它的结构在编译时是已知的,并且在编译后不能更改。
必须创建多个类来表示多个
JSON
文档是很好的。因此,如果您担心要创建的文件数量,这不是问题。
但是,如果
JSON
文档结构将随着每个请求而不断变化,那么定义一系列类就没有意义了。要处理完全动态的 JSON
,您应该坚持使用 Gson
为您提供的内容。这就是 Json 元素
及其子类。
JsonElement
> JsonArray
> JsonObject
> JsonPrimitive
> JsonNull
这就是描述
JSON
对象所需的全部内容。
假设我在pom.xml文件中放入了以下插件: 然后运行“mvn clean install”。Maven在目标库中创建了两个jar文件。第一个jar文件编译源文件,第二个jar编译测试文件。这两个jar将具有相同的工件名称。 如果我想在另一个项目中使用源代码的jar作为依赖项,我可以在另一个项目中放入以下依赖项: 到目前为止还不错。 如果我还想为测试文件添加依赖项,就会出现问题。在本例中,我将有两
我有玩家类和敌人类,它们都已经扩展了一个游戏类(libgdx)。现在我可以看到玩家和敌人类共享很多公共代码,我可以做一个抽象并将所有必要的代码放在那里,但是玩家类已经从游戏扩展到了敌人类。 玩家和敌人的职业都有其他职业也会调用的方法。 球员级别 敌方阶级 有没有办法让我把这些方法存储在一个类中,然后在这个类中再次重用它们?
不过就是创建结构体的时候,根据每个对象的特征赋值不同的属性罢了 // 3.创建一个结构体变量 p1 := Person{"lnj", 33} per.say() p2 := Person{"zs", 18} per.Say()
null 最终产品应该如下所示: 在上面的例子中,@public instance将只有uniqueKey、gtin、printedGtin作为属性。
显然,在示例中,我将它们设置为字符串属性,但实际上它们是其他类型的。 注意:Object1和Object2实际上是从SOAP服务器所需的XML模型生成的类。所以我不能修改它们。 在我的代码中,我必须访问Object1或Object2的'name'属性,这取决于不同的因素。这个点是一个事件处理程序,所以在某一时刻,它捕获一个用Object1调用的事件,而在其他时间,它捕获一个用Object2调用的事
我试图为一个包含不同类型对象数组的对象定义一个swagger模式定义。 下面是模板对象(以及所有相关对象类型)的 json 架构。我知道 swagger 不支持 oneOf 谓词,所以我只是想弄清楚如何在 swagger 中描述这个数据结构。我已经尝试了这种语法的许多变体,但没有一个有效,这是我根据规范和这里找到的一些例子所能达到的最接近的:http://json-schema.org/examp