gpt4 book ai didi

java - 在 Java 中解析 GitHub API 响应

转载 作者:行者123 更新时间:2023-11-30 00:17:02 25 4
gpt4 key购买 nike

我有以下 JSON 结构(github api 响应 https://api.github.com/users/vGrynishyn/repos )

[
{
"id": 102121086,
"name": "DolynaPlus",
"full_name": "vGrynishyn_DolynaPlus",
"owner": {
"login": "vGrynishyn",
"id": 26795358,
............
},
"private": false,
"html_url": "https://github.com/vGrynishyn/DolynaPlus",
"description": null,
..............
},
{
"id": 103648881,
"name": "GoogleSearchMaven",
"full_name": "vGrynishyn/GoogleSearchMaven",
"owner": {
"login": "vGrynishyn",
"id": 26795358,
.........
},
"private": false,
"html_url": "https://github.com/vGrynishyn/GoogleSearchMaven",
"description": null,
...................
}
]

我尝试了以下代码来获取数组并收到异常 - 无法转换为数组

JSONArray jsonArray = new JSONArray(json_response);

我尝试由 Jackson 解析它,但我不需要结果。我只收到第一部分的结果并且出现异常 Parser exception

        JsonFactory fac = new JsonFactory();
JsonParser jp = null;
jp = fac.createParser(json_response);
StringBuilder strPar = new StringBuilder(" ");
jp.nextValue();
while(jp.nextValue() != JsonToken.END_ARRAY){
while (jp.nextToken() != JsonToken.END_OBJECT) {
String fieldName = jp.getCurrentName();
jp.nextToken();

if (fieldName.equals("id")){
strPar.append(jp.getText()+"; ");
}else if (fieldName.equals("name")){
strPar.append(jp.getText()+"; ");
}else if (fieldName.equals("full_name")){
strPar.append(jp.getText()+"; ");
}
}
}

我如何解析它。请帮忙。

最佳答案

下面的代码工作正常:

public class JSONParse {

public static void main(String[] args) throws Exception {
String url = "https://api.github.com/users/vGrynishyn/repos";
String data = readUrl(url);
JSONArray jsonArr = new JSONArray(data);

for (int i = 0; i < jsonArr.length(); i++) {
JSONObject jsonObj = jsonArr.getJSONObject(i);

System.out.println(jsonObj.get("name"));
}

}

private static String readUrl(String urlString) throws Exception {
BufferedReader reader = null;
try {
URL url = new URL(urlString);
reader = new BufferedReader(new InputStreamReader(url.openStream()));
StringBuffer buffer = new StringBuffer();
int read;
char[] chars = new char[1024];
while ((read = reader.read(chars)) != -1)
buffer.append(chars, 0, read);

return buffer.toString();
} finally {
if (reader != null)
reader.close();
}
}
}

输出:

DolynaPlus
GoogleSearchMaven
GoogleTesting
RadioTakt
Testlibrary

关于java - 在 Java 中解析 GitHub API 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47095087/

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