gpt4 book ai didi

android - 创建具有特定结构的 JSON 结果

转载 作者:行者123 更新时间:2023-11-29 17:20:05 25 4
gpt4 key购买 nike

我正在开发一个 Android 应用程序,我需要创建一个 Json 结果,其中包含一些特定结构的数据。

这是我必须得到的:

 {  
"speedtest":"10Mbit/s",
"httpRequest":[
{
"url":"www.google.com",
"statusCode":"200"
},
{
"url":"www.google.com",
"statusCode":"200"
},
{
"url":"www.google.com",
"statusCode":"200"
}
],
"traceroute":[
{
"url":"www.google.com",
"nodes":[
"45.34.222.11",
"232.43.54.32"
]
},
{
"url":"www.google.com",
"nodes":[
"45.34.222.11",
"232.43.54.32"
]
},
{
"url":"www.google.com",
"nodes":[
"45.34.222.11",
"232.43.54.32"
]
}
]
}

这是我写的代码,但它不能正常工作,我不明白为什么。

public class JsonBuilder {
String LogTag = "LogTags";

JsonBuilder(long downSpeed, ArrayList < String > ReqTest) {
long ds = downSpeed;
ArrayList < String > rt = ReqTest;

JSONArray ja = null;
JSONObject mainJson = new JSONObject();
JSONObject speedData = new JSONObject();
try {
speedData.put("speedtest", ds+"Mbit/s");
} catch (JSONException e) {
Log.wtf(LogTag, "JSON exception SpeedTest", e);
}

JSONObject HttpData = new JSONObject();
String[] req_split;

for (int i = 0; i < rt.size(); i++) {
req_split = rt.get(i).split(";", 2);
try {
HttpData.put("url", req_split[0]);
HttpData.put("statusCode", req_split[1]);
} catch (JSONException e) {
Log.wtf(LogTag, "JSON exception", e);
}
}

ja = new JSONArray();
ja.put(HttpData);


try {
mainJson.put("httpRequest", ja);
} catch (JSONException e) {
e.printStackTrace();
}

Log.wtf(LogTag, "JSON" + mainJson.toString());

}
}

我已经创建了 json 的一部分,但我不知道如何合并它

最佳答案

更好更简单的方法是像这样创建三个实体类

import com.google.gson.annotations.Expose;

public class Example {

@Expose(serialize = true)
String speedtest;
@Expose(serialize = true)
List<httpRequest> httpRequest;
@Expose(serialize = true)
List<traceroute> traceroute;
}

public class httpRequest {
@Expose(serialize = true)
String url;
@Expose(serialize = true)
String statusCode;
}


public class traceroute {
@Expose(serialize = true)
String url;
@Expose(serialize = true)
List<String> nodes;
}

然后用数据填充你的对象;然后像这样使用 gson 库将您的示例(父类)对象转换为 Json

String json = new GsonBuilder().excludeFieldsWithoutExposeAnnotation().serializeNulls().create().toJson(expamleClassObject);

使用以下链接在您使用 Android studio 的应用中导入 gson 库

compile 'com.google.code.gson:gson:2.3.1'

关于android - 创建具有特定结构的 JSON 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36999413/

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