我实际上是通过这种方式将我的pojo数据转换为json字符串,
Gson gson = new GsonBuilder().disableHtmlEscaping().create();
String json=gson.toJson(user);
我得到了json字符串,但这不是我真正需要的格式,我得到了
json = {"userID":300,"userName":"asd","password":"s","enabled":1}
所以,我想用键值对转换Json字符串,如下所示,
{"userID":300,"userName":"asd","password":"s","enabled":1}
进入Json字符串,只有值(没有键),如下所示
[300,"asd","s",1]
答案 0 :(得分:1)
所以我继续你的字符串json
。
// lets deserialize your json string and get a hashmap
Type collectionType = new TypeToken<HashMap<String, Object>>(){}.getType();
HashMap<String, Object> hm = gson.fromJson(json, collectionType);
String finalJson = gson.toJson(hm.values());
// aand taa-daa!!
System.out.println(finalJson);
现在finalJson
是[300,"asd","s",1]
编辑:库如下:
import java.lang.reflect.Type;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;
答案 1 :(得分:0)
我可以问你为什么要那样做?如果您在没有key-value
的情况下检索该Json,例如,300
是他的id
而不是他的money
属性?
你不能区分你的属性,我不推荐它。
无论如何,我发现这样做的唯一方法是手动“破坏”你的字符串,用空值替换你的属性,比如json.replace("\"userID\"", "");
,你应该为每个属性做。
答案 2 :(得分:0)
您可以将user
的属性打包为List<Object>
,然后将JSON打包。{/ p>
这意味着GSON在List
之外制作了一个JSON阵列,你会得到你想要的。
因为这似乎没有多大意义作为用例你必须做一些硬编码 - 我不认为GSON可以为你做这个:
final List<Object> props = new LinkedList<>();
props.add(user.getId());
props.add(user.getUserName());
//etc
final String json=gson.toJson(props);