Java json 格式化小工具兼容转义 json 串

这篇具有很好参考价值的文章主要介绍了Java json 格式化小工具兼容转义 json 串。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

封装了一个格式化 json 小工具,支持标准的 json 格式 和 经过后端编程语言如 java 转义后的 字符串 json 格式的格式化输出,代码如下:

package json_parse;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import org.joda.time.DateTime;

import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;

public class ParseJsonTest {



	private static String prettyJson(String json) {
		JSONObject jsonObject = JSON.parseObject(json);
		return JSONObject.toJSONString(jsonObject, true);
	}


	// 反转义 JSON 字符串, 并且兼容处理开头不标准的字符串 json
	public static String unescapeJson(String escapedJsonString) {

		StringBuilder sb=new StringBuilder(escapedJsonString.trim());
		if(sb.charAt(0)=='"'){
			sb.deleteCharAt(0);
		}
		if(sb.charAt(sb.length()-1)=='"'){
			sb.deleteCharAt(sb.length()-1);
		}
		return sb.toString()
		.replace("\"{","{")
		.replace("}\"","}")
		.replace("\\n", "\n")
		.replace("\\t", "\t")
		.replace("\\\"", "\"")
		.replace("\\\\", "\\");
	}
    public static void main(String[] args) throws Exception {
        
        List<String> ls=Files.readAllLines(Paths.get(ParseJsonTest.class.getClassLoader().getResource("json_data").toURI()));
        String normalJSon=unescapeJson(ls.get(0));// 反转义
        System.out.println(prettyJson(normalJSon));

    }

}

我们看下两种 json 数据:

"{\"score\":2,\"count\":5,\"min\":3}"
{"score":2,"count":5,"min":3}

注意第一种使用 JSON 工具处理时,并不能正常解析,需要先转义才行,注意: 在 IDEA中 测试时不能直接将上面的内容拷贝到 Java 类中,因为 IDEA 会自动反转义,正确的测试的方法时将数据保存到 resources 文件夹下的一个文件中,然后读取出来解析即可。

附前端展示的插件使用:

npm install json-tree-view-vue3文章来源地址https://www.toymoban.com/news/detail-733198.html

                            <JsonTreeView rootKey="/"
                                          maxDepth={this.foldLevel}
                                          data={this.jsonData}> </JsonTreeView>

到了这里,关于Java json 格式化小工具兼容转义 json 串的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue3 codemirror关于 sql 和 json格式化的使用以及深入了解codemirror 使用json格式化提示错误的关键代码。包含了json格式化没有效果和json格式化提示错误

    后端返回一个json字符串,里面有value1、value2指定字段渲染sql语句,其他渲染json语句。 jsonlint 和 jsonlint-mod 的区别 简单理解:jsonlint校验json格式化是否有效,jsonlint-mod用来格式化后同时校验json格式化是否有效。 (1)JSONLint是一种可以验证JSON格式是否有效的工具。 它可以检查

    2024年04月28日
    浏览(77)
  • 【Java】SimpleDateFormat格式化日期

    SimpleDateFormat 是用于以区域设置敏感的方法格式化和解析日期。它允许格式化(日期文本),解析(文本日期) 对时间日期进行格式化处理 把Date对象转换为年月日时分秒格式字符串 把字符串转换为Date对象 常用的模式字母及对应关系如下:yyyy年MM月dd日HH时mm分ss秒 y 年,M 月

    2024年04月16日
    浏览(44)
  • idea Java代码格式化规范

    最近在公司开发中,遇到了一点小问题,组内各同事的格式化规范不一致。一来导致代码样式并不统一,二来有时候合并代码会出现冲突,因此做一套统一代码格式化规范很有必要。 在idea中,可以通过快捷键Ctrl+Alt+L来格式化代码,如果没有做任何配置,idea本身也有一套默认

    2024年02月03日
    浏览(47)
  • java实现当前系统时间格式化

    运行结果:

    2024年02月13日
    浏览(43)
  • 【Java学习笔记】16.Java 格式化输出 printf 用法

    Java 格式化输出 printf 用法 Java 中的 printf 方法用于格式化输出。 格式化指定了输出的形式,包括数字的精度、字符宽度、日期格式等等。下面是一些常用的格式化符号和用法: 字符串格式化 %s : 输出字符串 实例 整数格式化 %d : 输出十进制整数 %o : 输出八进制整数 %x : 输出十

    2024年02月07日
    浏览(46)
  • Java格式化日期,时间(三种方法)

    在java中String类格式化的方法,是静态format()用于创建格式化的字符串。 format(String format, Object... args) 新字符串使用本地语言环境,制定字符串格式和参数生成格式化的新字符串。 format(Locale locale, String format, Object... args) 使用指定的语言环境,制定字符串格式和参数生成格式化

    2024年02月13日
    浏览(55)
  • java格式化数字 NumberFormat及DecimalFormat

    NumberFormat帮助您格式化和解析任何区域设置的数字。您的代码可以完全独立于小数点,千位分隔符的区域设置约定,甚至是使用的特定十进制数字,或者数字格式是否为十进制。 DecimalFormat是NumberFormat十进制数字格式的具体子类 。它具有多种功能,旨在解析和格式化任何语言

    2024年02月02日
    浏览(43)
  • java中的数字的格式化(超详细)

    数字的格式化在解决实际问题时使用非常普遍,如显示某超市的商品价格,需要保留两位小数。Java 主要对浮点型数据进行数字格式化操作,其中浮点型数据包括 double 和 float 型数据,在 java 中常用以下方法: 目录        // 方法一 :DecimalFormat转换最简便 #.00 表示两位小数

    2024年02月16日
    浏览(45)
  • java.text.ParseException及日期格式化

    在优化接口时,遇到该异常,导致前端页面一直报500错误:  Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.text.ParseException: Unparseable date: \\\"Fri Apr 07 20:16:19 CST 2023\\\"] with root cause java.text.ParseExcept

    2024年02月09日
    浏览(43)
  • 【Java】Java 中格式化字符串:String.format() 方法

    本文仅供学习参考! 相关文章地址: https://www.cnblogs.com/Dhouse/p/7776780.html https://www.javatpoint.com/java-string-format https://www.geeksforgeeks.org/java-string-format-method-with-examples/ 前言 虽然 System.out.println() 适合调试和显示简单消息,但它不太适合格式化字符串。格式化字符串不仅显示字符串

    2024年02月11日
    浏览(65)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包