Java解析Json数据

这篇博客介绍了Java解析JSON的基本概念和方法,作者通过实例展示了如何使用谷歌的JSON解析包处理JSON数据,分享了从今日头条获取并解析天气数据的过程,适合编程初学者阅读。
摘要由CSDN通过智能技术生成

​从大一下学期到现在,学了挺久的后台了。从0到现在,一点一点摸索学习的,学习进度慢加上后台乏味枯燥。中途也没学过一段时间,当是看到学习成果的时候,就感觉又充满活力。我的第一篇博客,希望能给编程初学者带来一些帮助。接下来给是我个人对Java解析Json的看法。


  1.  什么是Json呢?它就是一对一对的键值对,有它自身的格式要求。
  • 数据在 名称/值对 中;
"firstName" : "John"

 

  • 数据由逗号分隔;
  • 花括号保存对象(Object);
    { "firstName":"John" , "lastName":"Doe" }

     

  • 方括号保存数组(Array);(数组可包含多个对象)
{
"employees": [
{ "firstName":"John" , "lastName":"Doe" },
{ "firstName":"Anna" , "lastName":"Smith" },
{ "firstName":"Peter" , "lastName":"Jones" }
]
}
  1. 上面呢我们也解释了什么是Json数据,接下来呢。我们要怎么去解析这个数据。
  2. 目前用的最广泛的数据交换格式有两种,一种是Xml ;另一种就是Json。这两种的区别我就不解释了,感兴趣的可以自行百度。我从今日头条获取了一个天气Json数据(这里我用厦门的天气),如下图:

然后我把获取到的JSON文件,在Idea中创建了一个test.json文件。

{
  "message": "success",
  "data": {
    "ip": "",
    "weather": {
      "dat_condition": "\u6674",
      "dat_low_temperature": 17,
      "wind_direction": "\u4e1c\u5317\u98ce",
      "high_temperature": 23,
      "low_temperature": 18,
      "current_time": 1542076734,
      "tomorrow_weather_icon_id": "0",
      "dat_high_temperature": 24,
      "forecast_list"
Java 可以使用第三方库来解析 JSON 数据,比较常用的有 Jackson、Gson 和 FastJson 等。 以下是使用 Jackson 库解析 JSON 数据的示例代码: ```java import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; public class JsonParser { public static void main(String[] args) { String jsonString = "{\"name\":\"John\", \"age\":30, \"city\":\"New York\"}"; ObjectMapper objectMapper = new ObjectMapper(); try { JsonNode jsonNode = objectMapper.readTree(jsonString); String name = jsonNode.get("name").asText(); int age = jsonNode.get("age").asInt(); String city = jsonNode.get("city").asText(); System.out.println("Name: " + name); System.out.println("Age: " + age); System.out.println("City: " + city); } catch (Exception e) { e.printStackTrace(); } } } ``` 其,`JsonNode` 类是 Jackson 库用于表示 JSON 数据的类。`ObjectMapper` 类则是用于将 JSON 数据转换为 `JsonNode` 对象的类。在上述示例代码,我们首先创建了一个 JSON 字符串 `jsonString`,然后通过 `ObjectMapper` 对象的 `readTree` 方法将其转换为 `JsonNode` 对象。接着,我们可以通过 `JsonNode` 对象的 `get` 方法获取其的字段值,并通过 `asText` 和 `asInt` 等方法将其转换为对应的 Java 类型。最后,我们将这些字段值输出到控制台。 除了 Jackson,还可以使用其他第三方库来解析 JSON 数据。例如,使用 Gson 库的示例代码如下: ```java import com.google.gson.Gson; import java.util.Map; public class JsonParser { public static void main(String[] args) { String jsonString = "{\"name\":\"John\", \"age\":30, \"city\":\"New York\"}"; Gson gson = new Gson(); Map<String, Object> map = gson.fromJson(jsonString, Map.class); String name = (String) map.get("name"); int age = ((Double) map.get("age")).intValue(); String city = (String) map.get("city"); System.out.println("Name: " + name); System.out.println("Age: " + age); System.out.println("City: " + city); } } ``` 在这个示例代码,我们首先使用 Gson 对象的 `fromJson` 方法将 JSON 字符串转换为 `Map` 对象。接着,我们可以通过 `Map` 对象的 `get` 方法获取其的字段值,并将其转换为对应的 Java 类型。最后,我们将这些字段值输出到控制台
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值