专栏首页james大数据架构java中用MessageFormat格式化json字符串用占位符时出现的问题can't parse argument number

java中用MessageFormat格式化json字符串用占位符时出现的问题can't parse argument number

在MessageFormat.format方法中组装jason数据字符串:{code:"w1",des:"w2"},起止分别有左大括号和右大括号。

直接写的点位符位报错:

java.lang.IllegalArgumentException : can't parse argument number MessageFormat

解决方法是将单引号把大括号包含起来。如下:

        String responseTemplate = "'{'code:\"{0}\",des:\"{1}\"'}'";

        System.out.println(MessageFormat.format(responseTemplate, "w1","w2"));

这是正确的做法,之前参考另一个网友说的只加一个单引号:"'{code:\"{0}\",des:\"{1}\"}'"; 测试时发现{0}等都没有替换,这是错误的做法,'{'两边都要加。

如果格式化字符串中包含单引号,处理方法是用2个单引号进行转义:

        String responseTemplate = "'{'code:''{0}'',des:''{1}'''}'";         System.out.println(MessageFormat.format(responseTemplate, "w1","w2"));

处理结果:{code:'w1',des:'w2'}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Java魔法堂:初探MessageFormat.format和ChoiceFormat

    一、前言                                 刚开始从.net的转向java的时候总觉得 String.format 用得不习惯,希...

    ^_^肥仔John
  • 2019-04-01 别再自己拼字符串了,Java中MessageFormat的使用

    这是String类型的静态方法,但是除此之外,JDK提供了更好用的字符串替换方法,就是

    Albert陈凯
  • JavaWeb(十八)国际化

    软件的本地化:一个软件在某个国家或地区使用时,采用该国家或地区的语言,数字,货币,日期等习惯。

    leeqico
  • 7. JDK拍了拍你:字符串拼接一定记得用MessageFormat#format

    你好,我是A哥(YourBatman)。本文所属专栏:Spring类型转换,公号后台回复专栏名即可获取全部内容。

    YourBatman
  • java 常规类型消息的格式化 原

    0.slf4j有一个common logger没有的功能,字符串中的{}会被替换,如下:

    wuweixiang
  • Java国际化/本地化实战

    开发一个支持多国语言的Web应用程序,要求系统能够根据客户端的系统的语言类型返回对应的界面:英文的操作系统返回英文界面,而中文的操作系统则返回中文界面——这便是...

    JavaEdge
  • Spring-国际化信息01-基础知识

    假设我们开发一个支持多国语言的Web应用系统,要求能够根据客户端系统的语言类型返回对应的界面。

    小小工匠
  • [Java 进阶]Java中的国际化

    背景知识 现代软件开发,往往做出的应用程序不止给一个国家的人去使用。不同国家的人往往存在语言文字不通的问题。由此产生了国际化(internationalizat...

    静默虚空
  • 都是微服务的天下了,还有不知道 JSON 的程序员吗?

      JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协...

    Demo_Null
  • JSON Bigint 大数精度丢失的背后

    如果你在 Chrome Dev Tools 控制台中输入 JSON.parse('{"taskid": 9007199254740993}') 运行结果返回的将...

    猫哥学前班
  • 学习PHP中的信息格式化操作

    在国际化组件的学习过程中,我们已经接触过了 NumberFormatter 这种数字的格式化操作,它可以让我们将数字转换成标准格式、货币、本地语言等形式。今天我...

    硬核项目经理
  • 经过多方调研,最终还是决定禁用FastJson

    老项目中使用到多种json类库,没有统一管理。最近开启全新的项目,准备对json类库进行统一,这样不仅能够压缩jar包的大小,也能够避免某个类库的漏洞导致系统问...

    程序新视界
  • 当JSON.parse”遇上”非键值对

    在json大行其道并作为前后端主要通讯的数据格式之一时,对json本身的使用和了解多少人都会有些概念,当然随之而来的也是对json的对象以及其字符串形式的互相转...

    RobinsonZhang
  • 自己写的一个 json parser

    之前看到知乎上有人问,会写Parser, Tokenizer是什么水平,绝大情况下,屁用没有。小部分情况,就看你运气了。因为这东西,面试又不会加分,而且,如果你...

    MikeLoveRust
  • python之jsonpath

    官方文档:http://docs.python.org/library/json.html

    周小董
  • 避坑 | 记一次前端长整数精度丢失问题

    后端Java实现的接口如下,返回一个json格式的大整数 123456789123456789:

    程序员鱼皮
  • 走进Java接口测试之工具类库 Hutool

    在 GitHub 上见到过很多开源的自动化框架内都自带了很多 Util 工具类,我们自己在开发自动化框架也必然需要用到工具类库,那么这样就会带来一些问题:

    高楼Zee
  • Spring系列 SpringMVC的请求与数据响应

    y以下案例均部署在Tomcat上,使用浏览器来访问一个简单的success.jsp页面来实现

    一只胡说八道的猴子
  • Spring系列 SpringMVC的请求与数据响应

    y以下案例均部署在Tomcat上,使用浏览器来访问一个简单的success.jsp页面来实现

    一只胡说八道的猴子

扫码关注云+社区

领取腾讯云代金券