从多个方面详述map转string字符串

一、Map转String字符串互相转换

在Java开发中,我们经常需要将Map转换为String字符串,或者将String字符串转换为Map。下面我们将分别介绍如何实现这两种转换。

1、Map转String字符串:

Map<String, Object> map = new HashMap<>();
map.put("name", "张三");
map.put("age", 18);
String mapStr = "";
if (!map.isEmpty()) {
    StringBuilder stringBuilder = new StringBuilder();
    for (Map.Entry<String, Object> entry : map.entrySet()) {
        stringBuilder.append(entry.getKey())
                .append("=")
                .append(entry.getValue())
                .append("&");
    }
    mapStr = stringBuilder.toString();
    mapStr = mapStr.substring(0, mapStr.length() - 1);
}

2、String字符串转Map:

String mapStr = "name=张三&age=18";
Map<String, Object> map = new HashMap<>();
if (!mapStr.isEmpty()) {
    String[] split = mapStr.split("&");
    for (String keyValue : split) {
        String[] entry = keyValue.split("=");
        if (entry.length > 1) {
            map.put(entry[0], entry[1]);
        } else {
            map.put(entry[0], "");
        }
    }
}

二、List转String字符串

有时候我们需要将List转换为String字符串,下面是实现该功能的代码:

List<String> list = new ArrayList<>();
list.add("张三");
list.add("李四");
StringBuilder stringBuilder = new StringBuilder();
for (String s : list) {
    stringBuilder.append(s).append(",");
}
String listStr = stringBuilder.toString();
listStr = listStr.substring(0, listStr.length() - 1);

三、字符串String转Map

有时候我们需要将String字符串转换为Map类型,下面是实现该功能的代码:

String mapStr = "{'name':'张三','age':18}";
mapStr = mapStr.replace("{", "")
        .replace("}", "")
        .replace("'", "");
Map<String, Object> map = new HashMap<>();
if (!mapStr.isEmpty()) {
    String[] split = mapStr.split(",");
    for (String keyValue : split) {
        String[] entry = keyValue.split(":");
        if (entry.length > 1) {
            map.put(entry[0], entry[1]);
        } else {
            map.put(entry[0], "");
        }
    }
}

四、String类型如何转成Map

String类型转Map的方式有多种,其中一种是使用第三方库。下面是将json字符串转换为Map类型的代码实现:

String jsonStr = "{'name':'张三','age':18}";
Gson gson = new Gson();
Map<String, Object> map = gson.fromJson(jsonStr, new TypeToken<Map<String, Object>>() {
}.getType());

五、String转Map集合

我们可以将字符串中的数据解析到多个Map中,即将Map合并,下面是实现该功能的代码:

String listMapStr = "[{'name':'张三','age':18},{'name':'李四','age':19}]";
List<Map<String, Object>> listMap = new ArrayList<>();
listMapStr = listMapStr.replace("[", "")
        .replace("]", "");
if (!listMapStr.isEmpty()) {
    String[] split = listMapStr.split("\\},\\{");
    for (String s : split) {
        Map<String, Object> map = new HashMap<>();
        s = s.replace("{", "")
                .replace("}", "")
                .replace("'", "");
        String[] keyValue = s.split(",");
        for (String entry : keyValue) {
            String[] splitEntry = entry.split(":");
            if (splitEntry.length > 1) {
                map.put(splitEntry[0], splitEntry[1]);
            } else {
                map.put(splitEntry[0], "");
            }
        }
        listMap.add(map);
    }
}

六、String转换为Map

下面是另一种将json字符串转换为Map类型的代码实现:

String jsonStr = "{'name':'张三','age':18}";
Map<String, Object> map = new HashMap<>();
JsonParser parser = new JsonParser();
JsonObject jsonObject = parser.parse(jsonStr).getAsJsonObject();
Set<Map.Entry<String, JsonElement>> entrySet = jsonObject.entrySet();
for (Map.Entry<String, JsonElement> entry : entrySet) {
    String key = entry.getKey();
    Object value = entry.getValue();
    if (value instanceof JsonPrimitive) {
        map.put(key, ((JsonPrimitive) value).getAsString());
    } else if (value instanceof JsonNull) {
        map.put(key, "");
    } else {
        map.put(key, value);
    }
}

七、Map转换为JSON字符串

通过以下代码,我们能够将Map转换为JSON字符串:

Map<String, Object> map = new HashMap<>();
map.put("name", "张三");
map.put("age", 18);
Gson gson = new Gson();
String jsonStr = gson.toJson(map);

八、String转JSON字符串

下面是将字符串转换为JSON字符串的代码实现:

String str = "张三";
JsonObject jsonObject = new JsonObject();
jsonObject.addProperty("name", str);
Gson gson = new Gson();
String jsonStr = gson.toJson(jsonObject);

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/271358.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-16 14:54
下一篇 2024-12-16 14:55

相关推荐

  • Python字符串宽度不限制怎么打代码

    本文将为大家详细介绍Python字符串宽度不限制时如何打代码的几个方面。 一、保持代码风格的统一 在Python字符串宽度不限制的情况下,我们可以写出很长很长的一行代码。但是,为了…

    编程 2025-04-29
  • 为什么Python不能编译?——从多个方面浅析原因和解决方法

    Python作为很多开发人员、数据科学家和计算机学习者的首选编程语言之一,受到了广泛关注和应用。但与之伴随的问题之一是Python不能编译,这给基于编译的开发和部署方式带来不少麻烦…

    编程 2025-04-29
  • Python中将字符串转化为浮点数

    本文将介绍在Python中将字符串转化为浮点数的常用方法。在介绍方法之前,我们先来思考一下这个问题应该如何解决。 一、eval函数 在Python中,最简单、最常用的将字符串转化为…

    编程 2025-04-29
  • Java判断字符串是否存在多个

    本文将从以下几个方面详细阐述如何使用Java判断一个字符串中是否存在多个指定字符: 一、字符串遍历 字符串是Java编程中非常重要的一种数据类型。要判断字符串中是否存在多个指定字符…

    编程 2025-04-29
  • Python学习笔记:去除字符串最后一个字符的方法

    本文将从多个方面详细阐述如何通过Python去除字符串最后一个字符,包括使用切片、pop()、删除、替换等方法来实现。 一、字符串切片 在Python中,可以通过字符串切片的方式来…

    编程 2025-04-29
  • Python合并多个相同表头文件

    对于需要合并多个相同表头文件的情况,我们可以使用Python来实现快速的合并。 一、读取CSV文件 使用Python中的csv库读取CSV文件。 import csv with o…

    编程 2025-04-29
  • 从多个方面用法介绍yes,but let me review and configure level of access

    yes,but let me review and configure level of access是指在授权过程中,需要进行确认和配置级别控制的全能编程开发工程师。 一、授权确…

    编程 2025-04-29
  • Python如何将字符串1234变成数字1234

    Python作为一种广泛使用的编程语言,对于数字和字符串的处理提供了很多便捷的方式。如何将字符串“1234”转化成数字“1234”呢?下面将从多个方面详细阐述Python如何将字符…

    编程 2025-04-29
  • Python int转二进制字符串

    本文将从以下几个方面对Python中将int类型转换为二进制字符串进行详细阐述: 一、int类型和二进制字符串的定义 在Python中,int类型表示整数,二进制字符串则是由0和1…

    编程 2025-04-29
  • 从多个方面zmjui

    zmjui是一个轻量级的前端UI框架,它实现了丰富的UI组件和实用的JS插件,让前端开发更加快速和高效。本文将从多个方面对zmjui做详细阐述,帮助读者深入了解zmjui,以便更好…

    编程 2025-04-28

发表回复

登录后才能评论