如何在将JSON分配给Java字符串时从JSON中转义特殊字符

如何在将JSON分配给Java字符串时从JSON中转义特殊字符,java,json,string,getstring,Java,Json,String,Getstring,im字符串将值从json分配到java字符串。但JSON值包含一些特殊字符(“\”)。当我试图将它赋给字符串时,它给出了错误 这是JSON值 "ValueDate":"\/Date(1440959400000+0530)\/" 这就是我试图使用它的方式 HistoryVO.setValueDate(DataUtil.getDateForUnixDate(historyJson.getString("ValueDate"))); 或 Mac 就像你要求的那样 String ValueDate

im字符串将值从json分配到java字符串。但JSON值包含一些特殊字符(“\”)。当我试图将它赋给字符串时,它给出了错误

这是JSON值

"ValueDate":"\/Date(1440959400000+0530)\/"
这就是我试图使用它的方式

HistoryVO.setValueDate(DataUtil.getDateForUnixDate(historyJson.getString("ValueDate")));

Mac

就像你要求的那样

String ValueDate = "\/Date(1440959400000+0530)\/";
在java字符串中,上面的一个是不可能的,因为它显示为无效的转义序列,所以将斜杠“\”替换为双斜杠“\”,如下所示

String ValueDate = "\\/Date(1440959400000+0530)\\/";
如果我不清楚我们的问题,请描述清楚

问候,, 哈里

就像你要求的那样

String ValueDate = "\/Date(1440959400000+0530)\/";
在java字符串中,上面的一个是不可能的,因为它显示为无效的转义序列,所以将斜杠“\”替换为双斜杠“\”,如下所示

String ValueDate = "\\/Date(1440959400000+0530)\\/";
如果我不清楚我们的问题,请描述清楚

问候,,
Hari

如果您有特定字符,
,请使用
子字符串
方法获取值

    String value = "\\/Date(1440959400000+0530)\\/";
    int start = value.indexOf("(");
    int last = value.lastIndexOf("0");
    value = value.substring(start + 1, last + 1);
    System.out.println(value); <--- 1440959400000+0530

    DataUtil.getDateForUnixDate(value);
输出

Date(1440959400000+0530)

如果您有特定字符,
,请使用
子字符串
方法获取值

    String value = "\\/Date(1440959400000+0530)\\/";
    int start = value.indexOf("(");
    int last = value.lastIndexOf("0");
    value = value.substring(start + 1, last + 1);
    System.out.println(value); <--- 1440959400000+0530

    DataUtil.getDateForUnixDate(value);
输出

Date(1440959400000+0530)
鉴于此

我想要。。。要获取[日期](1440959400000+0530)零件

我会用

String value = "/Date(1440959400000+0530)/";
int pos1 = value.indexOf("Date(");
if (pos1 > -1) {
  int pos2 = value.indexOf(")", pos1);
  if (pos2 > pos1) {
    value = value.substring(pos1, pos2 + 1);
    System.out.println(value);
  }
}
输出为

Date(1440959400000+0530)
注意:这是通过查找“日期(“然后是下一个”)”来实现的,它删除了不在这两种模式之间的所有内容。

我想要。。。要获取[日期](1440959400000+0530)零件

我会用

String value = "/Date(1440959400000+0530)/";
int pos1 = value.indexOf("Date(");
if (pos1 > -1) {
  int pos2 = value.indexOf(")", pos1);
  if (pos2 > pos1) {
    value = value.substring(pos1, pos2 + 1);
    System.out.println(value);
  }
}
输出为

Date(1440959400000+0530)

注意:这是通过查找“日期(“然后下一个”)”来实现的,它删除了不在这两种模式之间的所有内容。

我找到了我自己问题的答案

historyJson.getString("ValueDate");
这将返回类似于
/Date(1440959400000+0530)/

现在我可以分了。谢谢大家的帮助


你好,麦克达迪我找到了我自己问题的答案

historyJson.getString("ValueDate");
这将返回类似于
/Date(1440959400000+0530)/

现在我可以分了。谢谢大家的帮助


你好,麦克达迪

你想摆脱这个特殊角色吗??just Date(1440959400000+0530)DataUtil.getDateForUnixDate(字符串)所期望的字符串格式是什么?是的Rod_Algonquin我只想获取日期(1440959400000+0530)@Elliott我只想得到日期(1440959400000+0530)部分,因为在我的程序中有几种类型的日期格式,我们正在使用。所以你想去掉这个特殊字符??just Date(1440959400000+0530)DataUtil.getDateForUnixDate(字符串)所期望的字符串格式是什么?是的Rod_Algonquin我只想获取日期(1440959400000+0530)@Elliott我只想得到Date(1440959400000+0530)部分,因为在我的程序中,我们使用了几种类型的Date格式。是的,Hari json字符串类似于“\/Date(1440959400000+0530)\/”,但我无法将其解析为Java字符串。因此,在将其分配给字符串之前,我要格式化或拆分它。Regardsys Hari json字符串的格式类似于“\/Date(1440959400000+0530)\/”,但我无法将其解析为Java字符串。因此,在将其分配给字符串之前,我要格式化或拆分它。就CycDemo而言,事情是value=“\/Date(1440959400000+0530)\/”而不是value=“\\/Date(1440959400000+0530)\\/”。这就是问题所在。json值中没有double\。我的目标是说,如果你有
,使用
子字符串
methodNo-CycDemo,事情是value=“\/Date(1440959400000+0530)\/”而不是value=“\\/Date(1440959400000+0530)\\/”。这就是问题所在。json值中没有double\。我的目标是说,如果您有
,请使用
子字符串
方法。问题是它不能使字符串“\/Date(1440959400000+0530)\/”像这样。因为“\”的缘故。JSON的提交方式如下:“ValueDate”:“\/Date(1440959400000+0530)\/”@MacDaddy这些必须是字符串,而不是编译时文本。上面的代码没有问题,因为我忽略了“Date”左边的所有内容(“然后是”)右边的所有内容。问题是它不能像这样生成字符串“\/Date(1440959400000+0530)\/”。因为“\”的缘故。JSON的提交方式如下:“ValueDate”:“\/Date(1440959400000+0530)\/”@MacDaddy这些必须是字符串,而不是编译时文本。上面的代码没有问题,因为我忽略了“Date”左边的所有内容(“然后是”右边的所有内容”)。