Java 如何使用JSON
好吧,如果有人问我这个问题,我真的很抱歉,但我似乎找不到任何好的帮助 我使用PHP和Codeigniter为自己的android应用程序编写了一个小API。它通过GET请求工作,所以我会向它发送一些信息,它会返回一些信息。当我向它发送登录请求时,我希望它验证用户数据,如果正确,则返回用户的凭据(uid、电子邮件等)。所有这些信息都可以作为格式化的XML或JSON数组返回。我的问题是,在Java中哪一个更容易使用,您能帮我举一个简单的例子吗 非常感谢您的帮助 编辑: 请求的代码Java 如何使用JSON,java,android,Java,Android,好吧,如果有人问我这个问题,我真的很抱歉,但我似乎找不到任何好的帮助 我使用PHP和Codeigniter为自己的android应用程序编写了一个小API。它通过GET请求工作,所以我会向它发送一些信息,它会返回一些信息。当我向它发送登录请求时,我希望它验证用户数据,如果正确,则返回用户的凭据(uid、电子邮件等)。所有这些信息都可以作为格式化的XML或JSON数组返回。我的问题是,在Java中哪一个更容易使用,您能帮我举一个简单的例子吗 非常感谢您的帮助 编辑: 请求的代码
// Parse JSON array
JSONObject obj = (JSONObject) JSONValue.parse(response);
String uid = (String) obj.get("uid");
String email = (String) obj.get("email");
根据我的经验,JSON更容易使用 这是一些XML格式的数据:
<book>
<person>
<first>Kiran</first>
<last>Pai</last>
<age>22</age>
</person>
<person>
<first>Bill</first>
<last>Gates</last>
<age>46</age>
</person>
<person>
<first>Steve</first>
<last>Jobs</last>
<age>40</age>
</person>
</book>
以及读取JSON的示例代码:
JSONObject obj = (JSONObject) JSONValue.parse(jsonString);
JSONArray arr = (JSONArray) obj.get("book");
for (int i = 0; i < arr.size(); i++) {
JSONObject person = (JSONObject) arr.get(i);
String first = (String) person.get("first");
String last = (String) person.get("last");
String age = (String) person.get("age");
System.out.println("Person " + i +" : first = "+ first + ", last = " + last + ", age = " + age);
}
jsonobjectobj=(JSONObject)JSONValue.parse(jsonString);
JSONArray arr=(JSONArray)obj.get(“book”);
对于(int i=0;i
从这两段示例代码中,您可以看到JSON更易于读取、写入和格式化
XML更常用作交换信息的行业标准,而JSON则常用于通过基于REST的API交换信息。根据我的经验,JSON更容易使用 这是一些XML格式的数据:
<book>
<person>
<first>Kiran</first>
<last>Pai</last>
<age>22</age>
</person>
<person>
<first>Bill</first>
<last>Gates</last>
<age>46</age>
</person>
<person>
<first>Steve</first>
<last>Jobs</last>
<age>40</age>
</person>
</book>
以及读取JSON的示例代码:
JSONObject obj = (JSONObject) JSONValue.parse(jsonString);
JSONArray arr = (JSONArray) obj.get("book");
for (int i = 0; i < arr.size(); i++) {
JSONObject person = (JSONObject) arr.get(i);
String first = (String) person.get("first");
String last = (String) person.get("last");
String age = (String) person.get("age");
System.out.println("Person " + i +" : first = "+ first + ", last = " + last + ", age = " + age);
}
jsonobjectobj=(JSONObject)JSONValue.parse(jsonString);
JSONArray arr=(JSONArray)obj.get(“book”);
对于(int i=0;i
从这两段示例代码中,您可以看到JSON更易于读取、写入和格式化
XML更常用作交换信息的行业标准,而JSON常用于通过基于REST的API交换信息。有关JSON,请参阅@user949300您的链接格式不正确。我会查看一下,谢谢您的回复@经过无数次的尝试,我终于做对了。“-)关于JSON,请参阅@user949300您的链接格式不正确。我会查看一下,谢谢您的回复!@ThomasW经过无数次尝试,我终于找到了正确的答案。”-)这是一个很好的答案,谢谢!有人告诉我,
JSONValue
无法解析。我是否缺少依赖项?好吧,我找到了,必须下载json simple库。是的,json simple或json smart可以:)好吧,当我得到一个用户时,它返回一个带有该用户属性(即uid、用户名等)的一维数组。所以我在这里使用你的代码。问题是,obj.get()
抛出异常。因为我在做类似于stringuid=obj.get(“uid”).toString()的事情代码>,对于每个属性,我不希望对每个属性都进行尝试。有没有办法完全避免这种异常?这种错误是如何发生的?如果属性不存在,我相信它返回null。顺便说一句,如果你希望它返回一个字符串,将它转换成字符串似乎是一个更好的主意。这是一个很好的答案,谢谢!有人告诉我,JSONValue
无法解析。我是否缺少依赖项?好吧,我找到了,必须下载json simple库。是的,json simple或json smart可以:)好吧,当我得到一个用户时,它返回一个带有该用户属性(即uid、用户名等)的一维数组。所以我在这里使用你的代码。问题是,obj.get()
抛出异常。因为我在做类似于stringuid=obj.get(“uid”).toString()的事情代码>,对于每个属性,我不希望对每个属性都进行尝试。有没有办法完全避免这种异常?这种错误是如何发生的?如果属性不存在,我相信它返回null。顺便说一句,如果您希望它返回字符串,那么将其转换为字符串似乎是一个更好的主意。