gpt4 book ai didi

java - 解析 JSON 时出现问题

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:45:20 24 4
gpt4 key购买 nike

当我尝试解析 JSON 时,出现了一个非常奇怪的错误。实际上,该文件非常简单,由一个简单的对象组成,如下所示:

{
"registered":false,
"firstname":"xxx",
"name":"yyyy",
"email":"yyyy.xxx@gmail.com",
"picture":"xxxxx.jpg",
"username":"xxxy"
}

为了解析这个文件,我使用了下面的代码,它的灵感来自于 Android SDK 的例子:

public static boolean isRegistered(int nmb) {
boolean toReturn = true;
JsonReader reader = null;
try {
reader = new JsonReader(new InputStreamReader(new URL("xxx").openConnection().getInputStream()));
reader.beginObject();
while(reader.hasNext()) {
String name = reader.nextName();
Log.i("Next value", name);
switch (name) {
case "registered":
toReturn = reader.nextBoolean();
break;
case "firstname":
ProfileManager.getInstance().setFirstname(reader.nextString());
break;
case "name":
ProfileManager.getInstance().setName(reader.nextString());
break;
case "email":
break;
case "picture":
break;
case "username":
break;
}
}
reader.endObject();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}

return toReturn;
}

当我开始执行时,执行时出现错误。

String name = reader.nextName();

错误表明它需要一个名称,但得到的是一个字符串。可以肯定的是,我用 nextString() 替换了 nextName() 并且我得到了相反的错误:Expected a String but was NAME.由于 peek() 方法,我决定检查第一个值,它清楚地表明第一个元素是一个名称。所以我通过手动读取对象尝试了一个非常简单的事情,没有循环并且它有效。这怎么可能 ?此外,我必须修改什么才能使此代码可用?

谢谢!

最佳答案

尝试使用android sdk提供的内置库

                JSONObject obj = new JSONObject(jsonString);
boolean registered = obj.getBoolean("registered");
String firstname = obj.getString("firstname");
String name = obj.getString("name");
String email = obj.getString("email");
String picture = obj.getString("picture");
String username = obj.getString("username");

关于java - 解析 JSON 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39572248/

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