【发布时间】:2014-10-30 18:25:20
【问题描述】:
我需要创建一个包含 [[{IMEI=49015420323751}], [{PIN=538000001}]] 之类的值的对象,以便将其转换为 JSON。
现在我正在做的是
ArrayList<ArrayList<HashMap<String,String>>> Request_Identifiers = new ArrayList<ArrayList<HashMap<String,String>>>();
ArrayList<HashMap<String,String>> list1 = new ArrayList<HashMap<String,String>>();
HashMap<String,String> map1 = new HashMap<String,String>();
map1.put("IMEI","49015420323751");
list1.add(map1);
ArrayList<HashMap<String,String>> list2 = new ArrayList<HashMap<String,String>>();
HashMap<String,String> map2 = new HashMap<String,String>();
map2.put("PIN","538000001");
list2.add(map2);
Request_Identifiers.add(list1);
Request_Identifiers.add(list2);
但我现在需要在构造函数中执行此操作(例如如何初始化字符串数组 new String[]{"blocked","suspended","classmask"})或为此编写一个 setter 方法。怎么做 ?我真的很困惑。如果有人可以在这里帮助我,我会很高兴。
提前致谢。
编辑:
我需要在 java 中创建一个 JSON 对象来传递 java 中的请求,就像
{
"attributes": ["blocked", "suspended"],
"authPolicy": ["device_valid"],
"identity": "first_id",
"encoding": "default",
"identifiers":
[
[
{"PIN": "234576"},
{"IMEI": "49015420323751"}
],
[
{"PIN": "68000001"}
]
]
}
所以我在写一个java类,打算用gson转成json格式
class RequestBody
{
String[] Request_Attributes;
String[] Request_Policies;
String Request_Identity;
String Request_Encoding;
Boolean Auth_Client;
Boolean Handle_429;
ArrayList<ArrayList<HashMap<String,String>>> Request_Identifiers;
public RequestBody()
{
Request_Attributes = new String[]{"blocked","suspended","classmask"};
Request_Policies = new String[]{"bbm_meetings"};
Request_Identity = "first_id";
Request_Encoding = "default";
Auth_Client = true;
Handle_429 = true;
}
}
//System.out.println(RequestBody.Request_Identity);
Gson gson = new Gson();
System.out.println(gson.toJson(new RequestBody()));
我不知道这是否可行,但这是目前解决问题的方法。
对不起,如果这看起来太初级了,我是编程初学者。
【问题讨论】:
-
您始终可以将发布的代码打包为返回地图列表列表的方法。看起来它可能是一个
static方法,所以从构造函数中调用它不会有问题。你真正想解决什么问题?顺便说一句:你应该将Request_Identifiers的类型声明为List<List<Map<String, String>>>;在类型中使用具体类会阻止您使用Arrays.asList()之类的东西,它会返回不是ArrayList的List。 -
您可能需要考虑创建一个
Request_IdentifiersClass来保存这些信息。 -
This: ArrayList
>> 是一个糟糕的语法,会咬你... 请告诉我们你想解决什么样的问题解决,因此我们可以建议一种比您目前尝试使用的更清洁的方法。 -
@R4J 我更新了这个问题。请帮忙。谢谢
-
我实际上会为此类对象创建一个构建器并添加您需要的任何属性。附带说明:您使用的命名约定(Request_Attributes 等)不是 Java 的。
标签: java json collections gson