【发布时间】:2019-12-23 16:20:57
【问题描述】:
我的应用程序正在使用第 3 方应用程序来获取数据 (Splunk)。 Splunks api 端点返回的输出是一个包含所有行标题的数组和一个包含所有行数据的字符串数组。例如
{
"fields":[
"appID",
"ApplicationName",
"AppOwner",
"AppOwnerID",
"KnownIPS",
"IP Count",
"KnownFIDS",
"FIDCount",
"LastSeen",
"TotalConnections"],
"rows":[
[
"123456",
"HelloWorld",
"Last,First",
"E12345",
"11.111.11.111,222.22.22.222",
"2",
"A67890,B12345,C67890",
"3",
"2019-12-08",
"47937"
]
],
"id":0
}
但是我希望我的输出类似于
{
Field[0]:row[0],
Field[1]:row[1],
etc..
}
现在我可以使用以下方法在我的网页上显示结果
try {
ArrayList<String> fieldslist = new ArrayList<String>();
JSONObject json = new JSONObject(responseString);
JSONArray fields = json.getJSONArray("fields");
JSONArray jsonArray = json.getJSONArray("rows"); // JSONArray is from the json.org library
String[][] arrayOfArrays = new String[jsonArray.length()][];
for (int i = 0; i < jsonArray.length(); i++) {
JSONArray innerJsonArray = (JSONArray) jsonArray.get(i);
String[] stringArray = new String[innerJsonArray.length()];
for (int j = 0; j < innerJsonArray.length(); j++) {
stringArray[j] = (String) innerJsonArray.get(j);
}
arrayOfArrays[i] = stringArray;
}
if (fields != null) {
int len = fields.length();
for (int i=0;i<len;i++){
fieldslist.add(fields.get(i).toString());
}
} ;
appDetail.setFields(fieldslist);
appDetail.setRows(arrayOfArrays);
} catch (JSONException e) {
e.printStackTrace();
}
return appDetail;
还有我的模特
@JsonProperty("fields")
private List<String> fields = new ArrayList<String>();
@JsonProperty("rows")
private String[][] rows = new String[i][j];
@JsonProperty("fields")
public List<String> getFields() {
return fields;
}
@JsonProperty("fields")
public void setFields(List<String> fields) {
this.fields = fields;
}
public Model withFields(List<String> fields) {
this.fields = fields;
return this;
}
@JsonProperty("rows")
public String[][] getRows() {
return rows;
}
@JsonProperty("rows")
public void setRows(String[][] rows) {
this.rows = rows;
}
public Model withRows(String[][] rows) {
this.rows = rows;
return this;
我知道我必须更新我的模型才能正确显示正确的结果,但我似乎无法在 try catch 中获得正确的逻辑。
【问题讨论】:
-
现在我可以显示结果了,那么你现在有什么问题?
-
我能够以字段、行格式显示结果,但不能以字段[0]、行[0]等形式显示结果