我想将值从 json 分配给 java String。但 JSON 值包含一些特殊字符(“\”)。当我试图将它分配给它给出错误的字符串时。
这是 JSON 值,
"ValueDate":"\/Date(1440959400000+0530)\/"
这就是我尝试使用它的方式。
HistoryVO.setValueDate(DataUtil.getDateForUnixDate(historyJson.getString("ValueDate")));
或者
鉴于
我想...得到 [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)
注意:这通过查找“日期(”,然后是下一个“)”来工作,它会删除不在这两个模式之间的所有内容。
如果你有特定的字符,(
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)
苹果电脑,
正如你要求的那样
String ValueDate = "\/Date(1440959400000+0530)\/";
以上在java字符串中是不可能的,因为它显示为无效的转义序列,所以将斜杠'\'替换为双斜杠'\'如下,
String ValueDate = "\\/Date(1440959400000+0530)\\/";
如果不清楚我们的问题,请清楚描述
问候, 哈里
我找到了我自己问题的答案。
historyJson.getString("ValueDate");
这会返回类似的字符串 /Date(1440959400000+0530)/
现在我可以拆分它了。谢谢大家的帮助。
问候,麦克爸爸