gpt4 book ai didi

java - REST 和 JSON - 将字符串转换为 JSON 数组

转载 作者:搜寻专家 更新时间:2023-10-31 08:23:40 25 4
gpt4 key购买 nike

我是 JSON 和 REST 的新手。我正在使用一个返回如下字符串的服务器:

[{"username":"Hello","email":"hello@email.com","credits":"100","twitter_username":""},{"username":"Goodbye","email":"goodbye@email.com","credits":"0","twitter_username":""}]

我已经设法在控制台上将它们打印为字符串,但现在我想将它们转换为 JSON 数组。到目前为止,我的代码没有返回任何错误,但我不知道将什么放入新 JSON 数组的构造函数中。我一直在引用一位同事发给我的一段代码,其中的构造函数是 new JSONArray(response),但他从未告诉我“response”是什么。

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

import sun.misc.BASE64Encoder;

public class NetClientGet {

public static void main(String[] args) {

try {

URL url = new URL("http://username:password@mobile.crowdedmedia.co.uk/index.php/api/users/get_users/");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");

BASE64Encoder enc = new sun.misc.BASE64Encoder();
String userpassword = "username:password";
String encoded = enc.encode(userpassword.getBytes());
conn.setRequestProperty("Authorization", "Basic " + encoded);

if (conn.getResponseCode() != 200) {
throw new RuntimeException("Failed : HTTP error code : "
+ conn.getResponseCode());
}

BufferedReader br = new BufferedReader(new InputStreamReader(
(conn.getInputStream())));

String output;
System.out.println("Output from Server .... \n");
while ((output = br.readLine()) != null) {
System.out.println(output);
}

JSONArray array = new JSONArray(output);

for (int i =0; i < array.size(); i++) {
JSONObject row = array.getJSONObject(i);
String user = row.getString("username");
System.out.println(user);
}

conn.disconnect();

} catch (MalformedURLException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}
}

最佳答案

  • 使用GSON将字符串格式化为 JsonArray
  • 然后遍历JsonArray获取值

代码示例

String json = "[{\"username\":\"Hello\",\"email\":\"hello@email.com\",\"credits\":\"100\",\"twitter_username\":\"\"},{\"username\":\"Goodbye\",\"email\":\"goodbye@email.com\",\"credits\":\"0\",\"twitter_username\":\"\"}]";
JsonArray jArray = new JsonParser().parse(json).getAsJsonArray();
for (int i=0;i<jArray.size();i++) {
JsonObject jsonObject = jArray.get(i).getAsJsonObject();
System.out.println(jsonObject.get("username"));
System.out.println(jsonObject.get("email"));
System.out.println(jsonObject.get("credits"));
System.out.println(jsonObject.get("twitter_username"));
System.out.println("*********");
}

关于java - REST 和 JSON - 将字符串转换为 JSON 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11503688/

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