gpt4 book ai didi

java - 使用 JSON 格式获取字符串的特定部分 java

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

我有一个问题,如何从具有 JSON 格式的字符串中获取信息的最佳方式。

{
"internal_id":"1234",
"moreInformation":"Failed authentication for user."
}

在本例中,我想获取“internal_id”的值,而且我已经通过 subtring、lastIndexOf 和 indexOf 获取了

public static String returnInternalCode(String json){
String internalCode = json.substring(json.lastIndexOf("\"internal_id\":\"") + "\"internal_id\":\"".length(), json.length() - 1);
if (json.lastIndexOf("\"internal_id\":\"") == -1) return null;
return internalCode.substring(0, internalCode.indexOf("\""));
}

我还尝试了几个带有订单更改但没有数据的 JSON,它也有效。我留下了我所做的全部测试:

public class Test {

public static void main(String[] args) {
// Original JSON
String json = "{\"internal_id\":\"999999\",\"moreInformation\":\"Failed authentication for user, 1 authentication attempt remaining.\"}";

// Other JSON order
String json2 = "{\"moreInformation\":\"Failed authentication for user. Invalid response.\", \"moreInformation2\":\"Failed authentication for user. \", \"internal_id\":\"45678\"}";

// JSON without the internal_id
String json3 = "{\"moreInformation\":\"Failed authentication for user. Invalid response.\"}";

// JSON without moreInformation
String json4 = "{\"internal_id\":\"999999\"}";

System.out.println("JSON: ".concat(json4));
System.out.println("internalId: " + returnInternalId(json4));
System.out.println("moreInformation: " + returnMoreInformation(json4));
}

public static String returnInternalId(String json){
String internalCode = json.substring(json.lastIndexOf("\"internal_id\":\"") + "\"internal_id\":\"".length(), json.length());
if (json.lastIndexOf("\"internal_id\":\"") == -1) return null;
return internalCode.substring(0, internalCode.indexOf("\""));
}

public static String returnMoreInformation(String json){
String moreInformation = (json.substring(json.lastIndexOf("\"moreInformation\":\"") + "\"moreInformation\":\"".length(), json.length()));
if (json.lastIndexOf("\"moreInformation\":\"") == -1) return null;
return moreInformation.substring(0, moreInformation.indexOf("\""));
}
}

我想知道是否有更好的方法来完成我所做的事情,例如使用 StringBuilder 或 StringBuffer,并找出哪种方法使用更少的内存或运行速度更快,我怎么知道?执行一个方法需要多长时间?

非常感谢!

最佳答案

您可以通过这种方式提取值;使用 Simple-json 库

    JSONObject jobj = (JSONObject) parser.parse(yourJsonString); // Pass the Json formatted String

String internal_id = (String) jobj.get("internal_id"); // Extract the value from your key

System.out.println(internal_id); // 1234

关于java - 使用 JSON 格式获取字符串的特定部分 java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54173856/

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