事前;我使用的是旧版本的Newtonsoft.Json(4.0.8.0)。
所以我正在尝试为Web服务器应用程序编写.NET客户端。 要将所有传入的数据包从json结构转换为.NET对象,我确实使用带有内置函数JToken.ToObject的JSON Serializer。 这要求目标.net类具有与传入的json数据完全相同的所需属性。
现在我遇到了一个数据包,其中包含C#范围内的无效属性名称(我认为是整体.NET)。 它看起来像这样。
“12345”:{
"Name1/Part2": {} "Name2/Part2": {} "Name3/Part2": {} "Name4/Part2": {} "Name5/Part2": {}
}
相同的.net代码将是。
class DataPacket {
public DummyObject 12345 {get; set;}
public class DummyObject {
public object Name1/Part2 {get; set}
public object Name2/Part2 {get; set}
public object Name3/Part2 {get; set}
public object Name4/Part2 {get; set}
public object Name5/Part2 {get; set}
}
}
所有属性名称都是非法的('以数字开头','非法字符 - > /')。
我知道如何用Newtonsoft的Major 4版本来解决这个问题吗?
非常感谢
答案 0 :(得分:2)
我相信你可以使用jsonproperty属性,所以第一个属性就像:
[NullReferenceException: Object reference not set to an instance of an
object.]
NServiceBus.Transports.RabbitMQ.RabbitMqQueueCreator.CreateQueueIfNecessary(Address
address, String account) in
C:\BuildAgent\work\ef98ad7376e3379a\src\NServiceBus.RabbitMQ\RabbitMqQueueCreator.cs:15
NServiceBus.Unicast.Queuing.QueuesCreator.Install(String identity,
Configure config) in
c:\BuildAgent\work\3206e2123f54fce4\src\NServiceBus.Core\Unicast\Queuing\QueuesCreator.cs:36
NServiceBus.Features.Starter.Run(Configure config) in
c:\BuildAgent\work\3206e2123f54fce4\src\NServiceBus.Core\Installation\InstallationSupport.cs:75
NServiceBus.Configure.Initialize() in
c:\BuildAgent\work\3206e2123f54fce4\src\NServiceBus.Core\Configure.cs:125
NServiceBus.Bus.Create(BusConfiguration configuration) in
c:\BuildAgent\work\3206e2123f54fce4\src\NServiceBus.Core\Bus.cs:19
Workopolis.CandidateSourcing.Web.WindsorInstallers.NServiceBusInstaller.Install(IWindsorContainer
container, IConfigurationStore store) in
c:\work\CobraGit\CandidateSourcing\Web\WindsorInstallers\NServiceBusInstaller.cs:46
Castle.Windsor.Installer.AssemblyInstaller.Install(IWindsorContainer
container, IConfigurationStore store) +229
Castle.Windsor.Installer.CompositeInstaller.Install(IWindsorContainer
container, IConfigurationStore store) +114
Castle.Windsor.WindsorContainer.Install(IWindsorInstaller[]
installers, DefaultComponentInstaller scope) +165
Castle.Windsor.WindsorContainer.Install(IWindsorInstaller[]
installers) +227
为每个需要转换的具有非法名称的json属性执行此操作