Json专题之--数据类型转换

目录

一、什么是JSON

二、String转json,json转String

1、使用Jackson库:

2、使用Gson库:

3、使用JSON.simple库:

4、使用 Fastjson

1、将字符串转换为JSON对象

2、将JSON对象转换为字符串:

三、如何实现 将 string存储的 json 转换为键值对形式

1、使用Jackson库:

   另一种 jackson 方式

2、使用Gson库:

3、使用JSON.simple库:


一、什么是JSON

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于在不同系统之间传递和存储数据。它使用简洁的文本格式来表示结构化数据,易于阅读和编写,并且可以通过多种编程语言进行解析和生成。

JSON由键值对组成,使用大括号 {} 表示对象,对象中的键和值之间使用冒号 : 分隔,键值对之间使用逗号 , 分隔。值可以是字符串、数字、布尔值、数组、对象或者null下面是一个简单的JSON示例:

{
  "name": "LoneRanger",
  "age": 23,
  "city": "xxx",
  "isStudent": false,
  "hobbies": ["coding", "swimming", "traveling"],
  "address": {
    "street": "123",
    "city": "xxx",
    "country": "CN"
  }
}

二、String转json,json转String

要将字符串转换为JSON对象,你可以使用各种JSON库中提供的方法。以下是使用Jackson、Gson和JSON.simple这三个常见的JSON库进行示例的代码:

1、使用Jackson库:

String jsonString = "{\"name\":\"John\",\"age\":30,\"city\":\"New York\"}";
     
  ObjectMapper objectMapper = new ObjectMapper();
  Object json = objectMapper.readValue(jsonString, Object.class);

2、使用Gson库:

 String jsonString = "{\"name\":\"John\",\"age\":30,\"city\":\"New York\"}";

        Gson gson = new Gson();
        Object json = gson.fromJson(jsonString, Object.class);

        // 输出JSON对象
        System.out.println(json);

3、使用JSON.simple库:

  String jsonString = "{\"name\":\"John\",\"age\":30,\"city\":\"New York\"}";
   JSONParser parser = new JSONParser();
   JSONObject json = (JSONObject) parser.parse(jsonString);
 // 输出JSON对象
   System.out.println(json);

4、使用 Fastjson

        使用Fastjson库,你可以很方便地将字符串和JSON相互转换。下面是使用Fastjson库进行字符串和JSON之间转换的示例代码:

1、将字符串转换为JSON对象

  JSONObject json = JSON.parseObject(jsonString);

在上面的代码中,我们使用JSON.parseObject()方法将字符串解析为Fastjson的 JSONObject对象。

2、将JSON对象转换为字符串:

JSONObject json = new JSONObject();
        json.put("name", "John");
        json.put("age", 30);
        json.put("city", "New York");

        String jsonString = JSON.toJSONString(json);

在上面的代码中,我们使用JSON.toJSONString()方法将Fastjson的JSONObject对象转换为字符串。

三、如何实现 将 string存储的 json 转换为键值对形式

要在Java中将存储为字符串的JSON转换为键值对形式,你可以使用 JSON库,例如Jackson、Gson或JSON.simple。下面是使用这些库的示例代码:

1、使用Jackson库:

import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;

import java.io.IOException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

public class JsonToMapConverter {
    public static void main(String[] args) {
        String jsonString = "{\"name\":\"John\",\"age\":30,\"city\":\"New York\"}";

        try {
            ObjectMapper objectMapper = new ObjectMapper();
            JsonNode jsonNode = objectMapper.readTree(jsonString);
            Map<String, Object> keyValueMap = new HashMap<>();

            Iterator<Map.Entry<String, JsonNode>> fields = jsonNode.fields();
            while (fields.hasNext()) {
                Map.Entry<String, JsonNode> entry = fields.next();
                String key = entry.getKey();
                JsonNode valueNode = entry.getValue();
                Object value = objectMapper.convertValue(valueNode, Object.class);
                keyValueMap.put(key, value);
            }

            // 遍历键值对
            for (Map.Entry<String, Object> entry : keyValueMap.entrySet()) {
                String key = entry.getKey();
                Object value = entry.getValue();
                System.out.println(key + " = " + value);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
   另一种 jackson 方式
String json = "{\"name\":\"John\",\"age\":30,\"city\":\"New York\"}";

      
            ObjectMapper objectMapper = new ObjectMapper();
            Map<String, Object> keyValueMap = objectMapper.readValue(json, new TypeReference<Map<String, Object>>() {});

            // 遍历键值对
            for (Map.Entry<String, Object> entry : keyValueMap.entrySet()) {
                String key = entry.getKey();
                Object value = entry.getValue();
                System.out.println("Key: " + key);
                System.out.println("Value: " + value);
            }

        在上述代码中,首先定义了一个JSON字符串。然后,使用ObjectMapper类的readValue方法将JSON字符串转换为Map<String, Object>对象。通过遍历这个Map对象的键值对,可以获取键和对应的值,并进行相应的处理。

        需要注意的是,使用readValue方法时,需要通过TypeReference类指定转换的目标类型。在本例中,我们指定了Map<String, Object>作为目标类型。

        这样,JSON字符串就可以转换为键值对形式的数据,可以根据具体的需求进一步处理和操作键值对。

2、使用Gson库:

import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;

import java.util.Map;

public class JsonToMapConverter {
    public static void main(String[] args) {
        String jsonString = "{\"name\":\"John\",\"age\":30,\"city\":\"New York\"}";

        Gson gson = new Gson();
        TypeToken<Map<String, Object>> typeToken = new TypeToken<Map<String, Object>>() {};

        Map<String, Object> keyValueMap = gson.fromJson(jsonString, typeToken.getType());

        // 遍历键值对
        for (Map.Entry<String, Object> entry : keyValueMap.entrySet()) {
            String key = entry.getKey();
            Object value = entry.getValue();
            System.out.println(key + " = " + value);
        }
    }
}

3、使用JSON.simple库:

import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;

import java.util.HashMap;
import java.util.Map;

public class JsonToMapConverter {
    public static void main(String[] args) {
        String jsonString = "{\"name\":\"John\",\"age\":30,\"city\":\"New York\"}";

        JSONParser parser = new JSONParser();

        try {
            JSONObject jsonObject = (JSONObject) parser.parse(jsonString);
            Map<String, Object> keyValueMap = new HashMap<>(jsonObject);

            // 遍历键值对
            for (Map.Entry<String, Object> entry : keyValueMap.entrySet()) {
                String key = entry.getKey();
                Object value = entry.getValue();
                System.out.println(key + " = " + value);
            }
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }
}

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Json和K-V转换工具是可以相互转换JSON(JavaScript Object Notation)和K-V(Key-Value)格式数据的工具。JSON是一种轻量级的数据交换格式,常用于存储和传输数据。而K-V则是以键值对的形式存储数据Json和K-V转换工具的作用是将JSON数据转换为K-V格式,或者将K-V格式数据转换为JSON。在实际应用中,这个工具有以下几个方面的用途: 1. 数据存储和传输:JSON和K-V格式都可以用于存储和传输数据。有时候,JSON数据可以更方便地表示复杂的数据结构,而K-V则更适合简单的键值对数据。所以,当需要将数据从一种格式转换为另一种格式时,可以使用这个转换工具来实现。 2. 数据处理和解析:在程序中,有时候需要对JSON或K-V格式的数据进行解析和处理。例如,需要读取和修改某个键对应的值,或者需要将一些特定的数据从整体数据中提取出来。这个转换工具可以很方便地帮助我们实现这样的功能。 3. 数据展示和查看:有时候,我们需要对JSON或K-V格式的数据进行展示和查看,以便更好地理解和分析数据。这个转换工具可以将JSON数据转换为K-V格式,然后可以通过更直观的方式展示数据,或者进行一些查询和分析操作。 总之,Json和K-V转换工具在处理JSON和K-V格式数据时非常有用。它可以帮助我们在数据存储、传输、处理、解析和展示等方面更加灵活和高效地操作数据

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值