- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 .net Web 服务,它应该通过 json 与 Java 应用程序通信。
现在我在服务器端有一个如下所示的方法:
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public DateTime GetDate(DateTime input)
{
return input;
}
我可以从 C# 应用程序发送一个接收日期时间值。按照惯例,日期值被序列化为:
\/Date(1279176056000)\/
其中数字定义为自纪元以来的秒数。因此,如果我想调用该服务,我的 json 请求字符串必须如下所示:
{"input":"\/Date(1279176056000)\/"}
但是,我不知道如何在 Java 端使用 json.org.* 类来实现它。
问题:如果我使用这段代码:
JSONObject json = new JSONObject();
json.put("input", "\\/Date(1279176056000)\\/");
JSONObject 足够聪明,可以在通过网络发送之前转义字符串本身,所以我得到:
{"input":"\\/Date(1279176056000)\\/"}
在服务器端反序列化期间导致异常:
System.FormatException: \/Date(1279183256000)\/ is not a valid value for DateTime
bei System.ComponentModel.DateTimeConverter.ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, Object value)
bei System.Web.Script.Serialization.ObjectConverter.ConvertObjectToTypeInternal(Object o, Type type, JavaScriptSerializer serializer, Boolean throwOnError, Object& convertedObject)
bei System.Web.Script.Serialization.ObjectConverter.ConvertObjectToTypeMain(Object o, Type type, JavaScriptSerializer serializer, Boolean throwOnError, Object& convertedObject)
bei System.Web.Script.Serialization.ObjectConverter.ConvertObjectToType(Object o, Type type, JavaScriptSerializer serializer)
bei System.Web.Script.Services.WebServiceMethodData.StrongTypeParameters(IDictionary`2 rawParams)
bei System.Web.Script.Services.WebServiceMethodData.CallMethodFromRawParams(Object target, IDictionary`2 parameters)
bei System.Web.Script.Services.RestHandler.InvokeMethod(HttpContext context, WebServiceMethodData methodData, IDictionary`2 rawParams)
bei System.Web.Script.Services.RestHandler.ExecuteWebServiceCall(HttpContext context, WebServiceMethodData methodData)
长话短说:如何在不转义的情况下将反斜杠作为参数传递给 JSONObject?
好吧,您可能认为我只是自己构建 JSON 字符串,但我真的想发送和接收包含 Date 属性的更复杂的对象/数组,我不想自己处理整个 JSON 生成。
最佳答案
我遇到了同样的问题。在提交值之前,我做了一个 replaceAll。对于 Java 和 RegEx,它有很多斜杠需要正确转义。
JSONObject json = new JSONObject();
json.put("input", "\\/Date(1279176056000)\\/");
String stringToSubmit = json.toString().replaceAll("\\\\\\\\", "\\\\");
关于c# - 用于将 .net Web 服务反序列化为 DateTime() 的 Java JSONObject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3256843/
出于好奇,我尝试了一些原型(prototype)制作,但似乎只允许在第一个位置使用子例程的原型(prototype) &。 当我写作时 sub test (&$$) { do_somethin
我需要开发一个类似于 Android Play 商店应用程序或类似 this app 的应用程序.我阅读了很多教程,发现几乎每个教程都有与 this one 类似的例子。 . 我已经开始使用我的应用程
考虑一个表示“事件之间的时间”的列: (5, 40, 3, 6, 0, 9, 0, 4, 5, 18, 2, 4, 3, 2) 我想将这些分组到 30 个桶中,但桶会重置。期望的结果: (0, 1,
我是一名优秀的程序员,十分优秀!