我需要将其解析为JsonArray而不是对象
但它似乎正常工作。
我的输出是[“ {” TransactionVolume“:” 34“,” TransactionitemID“:” 2“}”]
我需要它是[{“ TransactionVolume”:“ 34”,“ TransactionitemID”:“ 2”}]
这是我的代码的一部分
public class TransactionItem {
public String TransactionitemID;
public String TransactionVolume;
public String getTransactionVolume() {
return TransactionVolume;
}
public void setTransactionVolume(String transactionVolume) {
TransactionVolume = transactionVolume;
}
public String getTransactionitemID() {
return TransactionitemID;
}
public void setTransactionitemID(String transactionitemID) {
TransactionitemID = transactionitemID;
}
}
TransactionItem transactionItem = new TransactionItem();
transactionItem.setTransactionitemID(article.toString());
transactionItem.setTransactionVolume(volume.toString());
String transitemjson = gson.toJson(transactionItem);
JSONArray ja = new JSONArray();
ja.put(transitemjson);
String test = ja.toString().replaceAll("\\\\\"", "\"");
Ja似乎是正确的输出
[“ {\” TransactionVolume \“:\” 34 \“,\” TransactionitemID \“:\” 2 \“}”
因此,我尝试在开头和结尾处将所有\替换为“,但仍用”。
修剪字符串似乎不是一个好主意,但它可以工作。还有其他方法吗?
编辑
这使我达到了目标!
ArrayList<TransactionItem> Transactionlist = new ArrayList<>();
for (int i=0; i < CompleteArticle.size(); i++) {
String id = CompleteArticle.get(i);
String Volume = CompleteVolume.get(i);
TransactionItem transactionItem = new TransactionItem();
transactionItem.setTransactionitemID(id);
transactionItem.setTransactionVolume(Volume);
//transactionitems.transactionitems.add(transactionItem);
Transactionlist.add(transactionItem);
}
JsonElement transitemjson = gson.toJsonTree(transactionItems);
输出:
[{“ TransactionVolume”:“ 1”,“ TransactionitemID”:“ 5”},{“ TransactionVolume”:“ 3”,“ TransactionitemID”:“ 3”}]
最佳答案
您需要使用JSONElement
代替String
。
替换此行:
String transitemjson = gson.toJson(transactionItem);
有了这个:
JSONElement transitemjson = gson.toJsonTree(transactionItem);