我有一组包含字段和对象的对象。需要在序列化输出中检查但在反序列化时不能读回的属性。
这纯粹是为了调试/确认目的。我们正在创建数百个文件,我想通过添加补充信息来检查序列化是否正确发生。我不希望在反序列化期间读取这些补充信息 - 事实上它是不可能的。
我还需要在不同的序列化格式中使用相同的工具来完成此操作,因此我们可以评估哪一种最佳。我有一个通用的序列化方法,其中所需的格式作为参数传递,因此不要为每种不同的格式提供任何过于混乱或错综复杂的内容。
我一直在寻找相关主题的各种事情 - 主要是与相反的事情有关:在序列化过程中不写某些字段。那里的东西似乎很复杂,有时很骇客。
Is it possible to serialize an object differently to deserializing it using Json.Net?
JsonConvert .NET Serialize/Deserialize Read Only
Serialize Property, but Do Not Deserialize Property in Json.Net
此外,似乎任何方法在序列化格式之间都不一致。与[*Ignore]
属性不同,没有[*SerializeOnly]
属性(其中* = JSON,XML,YAML)。
是否有一种简单的方法可以跨这些序列化格式执行此操作?是否有一系列属性可以提供帮助?或者在每种情况下都是特殊的和黑客的吗?
答案 0 :(得分:0)
我已经测试并将其应用于XML序列化,但它适用于我:
当我想要一个属性被序列化但没有回读时,我只是声明一个空的setter。
Traceback (most recent call last):
File "C:\Users\ben_s\Desktop\Nike Account Generator.py", line 19, in <module>
button = browser.find_element_by_class_name("nsg-button.nsg-grad--nike-orange.yes-button.cookie-settings-button.js-yes-button")
File "C:\Python\Python36\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 557, in find_element_by_class_name
return self.find_element(by=By.CLASS_NAME, value=name)
File "C:\Python\Python36\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 957, in find_element
'value': value})['value']
File "C:\Python\Python36\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 314, in execute
self.error_handler.check_response(response)
File "C:\Python\Python36\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"class name","selector":"nsg-button.nsg-grad--nike-orange.yes-button.cookie-settings-button.js-yes-button"}
(Session info: chrome=67.0.3396.87)
(Driver info: chromedriver=2.38.552522 (437e6fbedfa8762dec75e2c5b3ddb86763dc9dcb),platform=Windows NT 10.0.17134 x86_64)