【发布时间】:2022-01-17 06:11:47
【问题描述】:
我有一个具有以下属性的类,
public AnalyticsEventProperty(String eventID, String key, Object value, EventPropertyValueType valueType) {
this.eventID = eventID;
this.key = key;
this.value = value;
this.type = valueType();
}
创建此对象并将其传递给事件属性数组,当我进行 Json 转换时,我得到以下输出:
{"eventID":"afc970ef-80cf-4d6e-86e6-e8f3a56f26f5","name":"app_start","propertyArrayList":[{"eventID":"afc970ef-80cf-4d6e-86e6-e8f3a56f26f5","key":"session_id","value":"69200430-95a0-4e14-9a36-67942917573d"}
我正在使用“键和值”,我明白为什么,但是如何使用键和值作为键和值,即“session_id”:“69200430-95a0-4e14-9a36-67942917573d”,轴承请记住,这些键和值可能具有不同的属性名称,具体取决于构造函数中传递的内容。
当我创建字符串时,我只是在调用
String text_to_send = new Gson().toJson(events);
其中 events 是 ArrayList。
【问题讨论】:
-
您是否期望 JSON
Map<String, String>其中每个事件的键都映射到值(并且所有其他属性都被忽略),或者您是否期望事件对象仍然具有它们的其他属性和只更改了key和value? -
是的,谢谢,我需要事件对象具有 eventID,它们所映射的类型确定,因为属性名称是键,然后正如您建议的那样,只需将键值替换为传递的值。