import java.util.HashMap;
public class JSON {
public String name;
public HashMap<String, String> Credentials = new HashMap<String, String>();
public JSON(String name){
Credentials.put(name, name);
}
}
JSON json = new JSON("Key1");
new Gson().toJson(json);
我得到以下值作为输出。
{ “凭证”:{ “KEY1”: “KEY1”}}
现在我将如何使用Gson创建类似下面的JSONObject。
答案 0 :(得分:2)
您创建一个与您的JSON数据结构匹配的POJO:
public class MyObject {
public HashMap<String,HashMap<String,String>> Credentials;
public HashMap<String, String> Header;
}
编辑以下评论:
这有点“数据结构101”,但是......你有一个JSON对象,它归结为一个包含两个哈希表的哈希表,其中第一个哈希表包含两个哈希表。
您可以像上面显示的那样简单地表示这一点,或者您可以创建所有POJO并使用它们:
public class Credentials {
private PrimeSuiteCredential primeSuiteCredential;
private VendorCredential vendorCredential;
// getters and setters
}
public class PrimeSuiteCedential {
private String primeSuiteSiteId;
private String primeSuiteUserName;
...
// Getters and setters
}
public class VendorCredential {
private String vendorLogin;
...
// getters and setters
}
public class Header {
private String destinationSiteId;
...
// getters and setters
}
public class MyObject {
public Credentials credentials;
public Header header;
// getters and setters
}
答案 1 :(得分:1)
在@Brian正在做的事情的基础上,你只需要自动序列化部分。
您所做的是以下内容,我必须说明,这是关于目前的单个对象。如果您要处理顶级对象集合,则必须查看GSON文档以获取更多详细信息。
Gson gson= new Gson();
Writer output= ... /// wherever you're putting information out to
JsonWriter jsonWriter= new JsonWriter(output);
// jsonWriter.setIndent("\t"); // uncomment this if you want pretty output
// jsonWriter.setSerializeNulls(false); // uncomment this if you want null properties to be emitted
gson.toJson(myObjectInstance, MyObject.class, jsonWriter);
jsonWriter.flush();
jsonWriter.close();
希望这能为您提供足够的上下文。 Gson应该足够聪明,能够找出你的属性并在输出中给出合理的名称。