0

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

这是 JSON 值,

"ValueDate":"\/Date(1440959400000+0530)\/"

这就是我尝试使用它的方式。

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

或者

在此处输入图像描述

4

4 回答 4

2

鉴于

我想...得到 [the] Date(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)

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

于 2014-07-30T03:50:57.480 回答
1

如果你有特定的字符,(and ),使用substring方法来获取值。

    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);

我不知道DataUtil.getDateForUnixDate()方法,但要注意+字符,因为它不是数字字符串。

更新

删除/字符使用replace方法。

    String value = "/Date(1440959400000+0530)/";
    value = value.replace("/", "");
    System.out.println(value);

输出

Date(1440959400000+0530)
于 2014-07-30T03:44:36.120 回答
1

苹果电脑,

正如你要求的那样

String ValueDate = "\/Date(1440959400000+0530)\/";

以上在java字符串中是不可能的,因为它显示为无效的转义序列,所以将斜杠'\'替换为双斜杠'\'如下,

String ValueDate = "\\/Date(1440959400000+0530)\\/";

如果不清楚我们的问题,请清楚描述

问候, 哈里

于 2014-07-30T03:33:15.063 回答
0

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

historyJson.getString("ValueDate");

这会返回类似的字符串 /Date(1440959400000+0530)/

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

问候,麦克爸爸

于 2014-07-30T04:31:25.177 回答