gpt4 book ai didi

java - json 对象 : Need to create a generic method to retrieve values

转载 作者:行者123 更新时间:2023-11-30 11:36:16 24 4
gpt4 key购买 nike

{
"CollegeResponse": {
"departmentDetails": {
"id": 42,
"departmentName": "computer science",
"labDetails": {
"id": 21,
"description": "machine learning",
"assistant": {
"empid": 201101,
"isPermanent": false
}
},
"affilated": false
}
}
}


responseInString = response.getEntity(String.class);
JSONObject json = new JSONObject(responseInString);
String id = json.getJSONObject("CollegeResponse").getJSONObject("departmentDetails").getString("id");

目前我正在使用这个程序来验证 db 的 json 响应。但是如果我的 json 响应很大并且我需要用 db 解析每个值,怎么能我写了一个通用方法或者它是否已经存在,比如接受 json 对象的 getvalue(jsondata`) 找到我需要迭代的级别并获取值。我有很多不同的 json 响应,因此帮助我检索 json 值的通用方法将使我的工作变得容易。

最佳答案

我使用字符串标记化从 json 对象中检索值。您需要提供 json 对象和字段值才能获取特定键的值。我们可以进一步优化它吗?

package javaapplication1;

import java.util.StringTokenizer;
import net.sf.json.JSONException;
import net.sf.json.JSONObject;

public class Tokenization {

public static void main(String args[]) {
JSONObject parentData = new JSONObject();
JSONObject childData = new JSONObject();
parentData.put("command", "dance");
parentData.put("uid", "123123123");
childData.put("uid", "007");
childData.put("username", "sup");
childData.put("password", "bros");
parentData.put("params", childData);
System.out.println(parentData);
String result = getValue(parentData, "params.uid");
System.out.println("Result:" + result);
}

public static String getValue(JSONObject inputJson, String field) {
String resultValue = null;
try {
StringTokenizer stJson = new StringTokenizer(field, ".");
int count = stJson.countTokens();
JSONObject objecStore = new JSONObject();
objecStore = inputJson;
while (stJson.hasMoreTokens()) {
String st = stJson.nextToken();
if (count > 1) {
JSONObject objNode = objecStore.getJSONObject(st);
count--;
objecStore = objNode;
} else {
System.out.println(st);
resultValue = objecStore.getString(st);
}
}

} catch (JSONException e) {
}
return resultValue;
}
}

关于java - json 对象 : Need to create a generic method to retrieve values,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14598405/

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