gpt4 book ai didi

java - 如何在不使用API​​的情况下在android中手动创建复杂的Json结构?

转载 作者:行者123 更新时间:2023-12-02 01:51:14 25 4
gpt4 key购买 nike

我想使用 JsonObject 和 JsonArrays 手动创建 Json 结构,如下所示:

{
"data":[
{
"company_name":"xyz",
"Amount":"$2000",
"Duplicate_amount":"$500"
},
{
"company_name":"abc",
"Amount":"$5000"
},
{
"company_name":"zzz",
"Amount":"$2500",
"Duplicate_amount":"$1000"
}
]
}

上面的 Json 是根据对 Arraylist 进行的检查生成的。例如:数组列表 [xyz,abc,zzz,xyz,hhh,zzz]。现在我想检查 arraylist 是否包含重复元素,即此处的“xyz”和“zzz”,然后在 Json 结构中,要在 Json 中添加的 Duplicate_amount Json 对象。否则,如果不存在重复项,则仅形成“company_name”和“amount”。整个json格式就这样形成了。

怎么做呢?我有查找重复元素的逻辑。但我似乎无法根据检查找到形成上述 json 的逻辑。

谢谢

更新

到目前为止,我已经尝试过检查。但下面的代码不起作用,也没有形成适当的 json。解决办法是什么?:

    JSONObject root_jsonObj = new JSONObject();
JSONArray jsonArr = new JSONArray();
JSONObject sub_jsonobj= new JSONObject();
Object[] st = AppData.customer_arr.toArray();
for (Object s : st) {

//The if-else is the duplicate checking part here
if (AppData.customer_arr.indexOf(s) != AppData.customer_arr.lastIndexOf(s)) {

try {
sub_jsonobj.put("name",AppData.customer_arr.get(counter));
sub_jsonobj.put("dup_amount",AppData.amt_arr.get(counter));

} catch (Exception e) {
e.printStackTrace();
}
}
else{
try {
sub_jsonobj.put("name",AppData.customer_arr.get(counter));
sub_jsonobj.put("amount",AppData.amt_arr.get(counter));

} catch (Exception e) {
e.printStackTrace();
}
}
jsonArr.put(sub_jsonobj);
counter++;
}
try {
root_jsonObj.put("data", jsonArr);

} catch (Exception e) {
e.printStackTrace();
}

最佳答案

你可以使用这个。

JSONObject obj1 = new JSONObject();
try {
obj1.put("company_name", "xyz");
obj1.put("Amount", "$2000");
obj1.put("Duplicate_amount", "$500");

} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

JSONObject obj2 = new JSONObject();
try {
obj2.put("company_name", "xyz");
obj2.put("Amount", "$2000");


} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}


JSONArray jsonArray = new JSONArray();

jsonArray.put(obj1);
jsonArray.put(obj2);

JSONObject dataObj = new JSONObject();
dataObj.put("Data", jsonArray);



String jsonStr = dataObj.toString();

System.out.println("jsonString: "+jsonStr);

关于java - 如何在不使用API​​的情况下在android中手动创建复杂的Json结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52965300/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com