考虑下面的类。 如果我运行findbugs它会给我一个错误(“序列化类中的非瞬时不可序列化的实例字段”)在第5行,但不是第7行。 1 public class TestClass implements Serializable { 2 3 private static final long serialVersionUID = 1905162041950251407L; 4 5 private Set<Integer> mySet; // Findbugs error 6 7 private HashSet<Integer> myOtherSet; 8 9 } 这是正确的,因为java.util.Set从不在其层次结构中实现Serializable,java.util.HashSet也不会。 然而,最好的做法是对接口进行编码而不是具体的实现。 我怎样才能最好地处理这个? 我可以在第3行添加一个@Suppresswarnings(justification =“No bug”,values =“SE_BAD_FIELD”)。我在我的实际代码中有很多设置和列表,我恐怕会乱扔我的代码太多。 有更好的方法吗?
我有一个有两个button的表单。 一个用于保存logging,另一个用于取消保存程序。 我正在使用rails.js (一个常见的AJAX / jQuery插件,用于那些你不知道的) JavaScript文件,它可以与jQuery一起使用,用于不显眼的javascript / ajax调用。 当我通过ajax发送表单数据时,我希望我点击的button的名称和值与其余的数据一起提交,以便我可以根据哪个button被点击来做出决定。 rails.js文件中的方法使用.serializeArray()将表单数据发送到服务器。 问题是这不包括我点击的button的名称/值对。 jQuery的网站声明,他们这样做的目的(尽pipe我认为他们应该): “ .serializeArray()方法使用标准的W3C规则来控制成功的控件,以确定它应该包含哪些元素,特别是元素不能被禁用,并且必须包含一个名称属性,没有提交button值被序列化,因为表单没有被提交一个button。” 他们怎么能假定一个表格不是用button提交的呢? 我相信这是毫无意义和错误的假设。 根据W3C规则,为提交表单而激活的button被视为成功的控件 。 由于jQuery的开发人员已经决定这样做的目的,我可以假设有另一种方法, 不排除序列化中激活的button? 编辑:这是我的表单可能看起来像什么样子的快速示例… <!DOCTYPE html5> <html> <head> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js" type="text/javascript"></script> <script type="text/javascript"> $(document).ready(function() { $('#form').submit(function(e) { // put your breakpoint here to look at e var x = 0; }); }); </script> </head> <body> <form id="form"> […]
我有一个WCF服务。 正常的操作会看到服务器正在执行一些处理,通过callback函数将填充的XactTaskIn对象返回给客户端。 我有这个工作确定。 我的问题是,当我尝试将returnDatavariables设置为已填充的XactException并尝试通过callback将XactTaskIn发送回客户端时,出现以下exception。 exception – “不希望使用数据协定名称”XactException:http://schemas.datacontract.org/2004/07/“键入'XactException'。考虑使用DataContractResolver或将静态未知的任何types添加到已知types列表 – 例如,使用KnownTypeAttribute属性或将它们添加到传递给DataContractSerializer的已知types的列表中。 (System.Runtime.Serialization.SerializationException)exception消息=“types'XactException'与数据协定名称'XactException:http://schemas.datacontract.org/2004/07/'不是预期的考虑使用DataContractResolver或添加任何types不知道静态到已知types的列表 – 例如,通过使用KnownTypeAttribute属性或通过将它们添加到传递给DataContractSerializer的已知types的列表“,Exception Type =”System.Runtime.Serialization.SerializationException“ 这是XactTaskIn类 [DataContract] public class XactTaskIn { [DataMember] public DateTime timeOut; [DataMember] public DateTime timeIn; [DataMember] public string name; [DataMember] public string responseTo; [DataMember] public String moduleFromName; [DataMember] public String moduleFromType; [DataMember] public String methodFromName; [DataMember] public object[] originalInputs; [DataMember] public String […]
我遇到了WCF REST服务的问题。 我尝试返回的线对象没有设置某些属性,导致DateTime.MinValuetypes为DateTimetypes的属性。 该服务返回一个空文档(HTTP状态200 ???)。 当我尝试自己调用JSON序列化时,引发的exception是: SerializationException:在转换为UTC时,大于DateTime.MaxValue或小于DateTime.MinValue的DateTime值无法序列化为JSON。 这可以通过在控制台应用程序中运行以下代码来进行重现: DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(DateTime)); MemoryStream m = new MemoryStream(); DateTime dt = DateTime.MinValue; // throws SerializationException in my timezone ser.WriteObject(m, dt); string json = Encoding.ASCII.GetString(m.GetBuffer()); Console.WriteLine(json); 这是为什么? 我认为这与我的时区(GMT + 1)有关。 由于DateTime.MinValue是默认的(DateTime),我希望这可以序列化没有问题。 有关如何使我的REST服务的行为的任何提示? 我不想改变我的DataContract。
我想序列化一个对象到XML,但我不想保存在磁盘上。 我想把它放在一个XElementvariables(用于LINQ),然后反序列化回我的对象。 我怎样才能做到这一点?
我想创build一个包含我的类的实例variables的JSONstring。 例如, class Example { std::string string; std::map<std::string, std:string> map; std::vector<int> vector; }; 会成为: { "string":"the-string-value", "map": { "key1":"val1", "key2":"val2" }, "vector":[1,2,3,4] } 我已经研究过几个用于创buildJSON的C ++库,它们看起来都非常复杂。 我想要类似于Javascript的JSON.stringify(object) 。 换句话说就是传递一个std :: map到它并接收一个string。 地图可以包含其他地图,vector,列表,string,数字和布尔。 什么是最好的方法来做到这一点? 谢谢你的帮助。 编辑 我已经看了下面的内容: json精灵,jsoncpp,zoolib,JOST,CAJUN,libjson,nosjob,JsonBox,jsonme– 我理解我可以构build一个单独的JSON对象,如下面的答案,并转换为JSON我想能够存储我的东西在标准集合和转换。 编辑2 好吧,放弃序列化类的想法,因为C ++缺乏反思似乎是不可能的。 有没有一种很好的方式来转换包含std :: maps,std :: vectors,std :: lists,numbers,strings和bools的std :: map到JSON,而不必更改数据types或将数据复制到新的数据types? 谢谢。
我有一个应用程序使用具有非常相似属性的3个实体的核心数据。 关系如下: 分支 – >>菜单 – >>分类 – >> FoodItem 每个实体都有一个关联的类:例子 我想在sqlite数据库中生成数据的JSON表示。 //gets a single menu record which has some categories and each of these have some food items id obj = [NSArray arrayWithObject:[[DataStore singleton] getHomeMenu]]; NSError *err; NSData *jsonData = [NSJSONSerialization dataWithJSONObject:obj options:NSJSONWritingPrettyPrinted error:&err]; NSLog(@"JSON = %@", [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]); 但是,而不是JSON,我得到一个SIGABRT错误。 *** Terminating […]
我试图移动一些代码来消费ASP.NET MVC Web API生成的Json数据,而不是SOAP Xml。 我遇到了序列化和反序列化types属性的问题: IEnumerable<ISomeInterface>. 这是一个简单的例子: public interface ISample{ int SampleId { get; set; } } public class Sample : ISample{ public int SampleId { get; set; } } public class SampleGroup{ public int GroupId { get; set; } public IEnumerable<ISample> Samples { get; set; } } } 我可以轻松地序列化SampleGroup的实例: var sz = JsonConvert.SerializeObject( […]
我有一个数据模型在我的Rails项目有一个序列化字段: class Widget < ActiveRecord::Base serialize :options end 选项字段可以有可变的数据信息。 例如,以下是Fixtures文件中一条logging的选项字段: options: query_id: 2 axis_y: 'percent' axis_x: 'text' units: '%' css_class: 'occupancy' dom_hook: '#average-occupancy-by-day' table_scale: 1 我的问题是让用户在标准表单视图中编辑此信息的正确方法是什么? 如果你只是使用一个简单的文本区域字段的选项字段,你只会得到一个yaml转储表示,该数据将被发回作为一个string。 在Rails中编辑一个序列化的散列字段的最佳方式是什么?
我有以下代码序列化查询集; def render_to_response(self, context, **response_kwargs): return HttpResponse(json.simplejson.dumps(list(self.get_queryset())), mimetype="application/json") 以下是我的get_querset() [{'product': <Product: hederello ()>, u'_id': u'9802', u'_source': {u'code': u'23981', u'facilities': [{u'facility': {u'name': {u'fr': u'G\xe9n\xe9ral', u'en': u'General'}, u'value': {u'fr': [u'bar', u'r\xe9ception ouverte 24h/24', u'chambres non-fumeurs', u'chambres familiales',………]}] 我需要序列化。 但它说不能序列化<Product: hederello ()> 。 由于django对象和字典组成的列表。 有任何想法吗 ?