Tag: json

使用Json序列化/反序列化TimeSpan

我正在尝试反序列化/序列化一个时间跨度, 但是当json发送时它设置为00:00:00这是否可能呢? 谢谢! -Kevin 顺便说一句,语言是C#,使用Visual Studio 2008。

如何检查变量是否为Array或Object?

为了反序列化json对象,我必须定义一个父类,它将包含子类的对象或对象数组。 如果检索到对象,则必须是对象;如果从json检索到数组,则必须是对象数组。 JSON数组对象 {“y”:{“x”:[{“data”:28}, {“data”:56}, {“data”:89}]}} JSON对象 {“y”:{“x”:{“data”:28}}} y一次接收x,另一次接收x []。 没有这样的条件来确定y是否会接收数组或对象。 因此,为了确定我是否收到了数组,我正在检查IsArray()条件。 我试过了 class Y { public X x { get { return System.IsArray() ? new X() : new x[] }; set; } } class X { public int data { get; set; } } 它不起作用。 System.IsArray()未被识别?

JSON反序列化为具有私有setter的对象

我遇到了JSON和反序列化的问题。 我有一个实时生产代码,它使用消息对象将信息从一个系统传递到另一个系统。 消息的ID非常重要,因为它用于识别它。 我们也不希望任何人设置ID,因此使其成为私人安装者。 尝试反序列化JSON对象并且未设置ID时出现问题。 (显然因为它是私人的) 有没有人有一个好的建议作为最佳的进行方式? 我尝试过使用Iserialisation,但它被忽略了。 我尝试过使用DataContract,但由于我们从外部系统获取数据,因此失败了。 目前我唯一的选择是让ID和TimeCreated字段具有公共设置器。 我有一个这样的对象 Message { public Message() { ID = Guid.NewGuid(); TimeCreated = DateTime.Now(); } Guid ID { get; private set; } DateTime TimeCreated { get; private set; } String Content {get; set;} } 现在我使用以下代码: var message = new Message() { Content = “hi” }; JavaScriptSerializer jss […]

我可以使用Newtonsoft.Json进行严格的反序列化吗?

我正在使用Newtonsoft.Json来序列化/反序列化对象。 据我所知,如果类没有无参数构造函数,则反序列化无法成功。 例, public class Dog { public string Name; public Dog(string n) { Name = n; } } 对于下面这个类,代码正确生成对象。 Dog dog1 = Newtonsoft.Json.JsonConvert.DeserializeObject(“{\”Name\”:\”Dog1\”}”); 对我来说,令人惊讶的是,它也可以使用以下代码正确生成对象。 Dog dog2 = Newtonsoft.Json.JsonConvert.DeserializeObject(“{\”name\”:\”Dog2\”}”); Dog dog3 = Newtonsoft.Json.JsonConvert.DeserializeObject(“{\”n\”:\”Dog3\”}”); Dog dog4 = Newtonsoft.Json.JsonConvert.DeserializeObject(“{\”N\”:\”Dog4\”}”); 现在我能想到的就是 Json转换器在进行reflection时忽略了区分大小写。 此外,如果它面向构造函数,它用json字符串填充参数(就好像参数名称是json字符串)。 我不确定,但也许这就是他们称之为灵活的原因。 这是我的问题: 如果我的class级是这样的, public class Dog { public string Name; public Dog(string name) { Name […]

如何检查json对象是否具有某些属性

在Java有一个很好的方法可以检查json对象是否包含密钥。 我这样使用它: JSONObject obj = ….; // <- got by some procedure if(obj.has("some_key")){ // do something } 我在C# newtonsoft.json库中找不到相同的酷function。 所以,我想知道有什么选择。 谢谢!

将JSON(文本文件)读入.NET应用程序

我有一个以下JSON格式的配置文件: { “key1”: “value1”, “key2”: “value2”, “key3”: false, “key4”: 10, } 用户可以使用文本编辑器设置/取消设置配置值。 但是我需要在我的C#应用​​程序中阅读它。 什么是JSON的最佳方式? 上述键与类无关。

无法将类型为“Newtonsoft.Json.Linq.JObject”的对象强制转换为“System.Runtime.Serialization.ISafeSerializationData”

我试图反序列化一个web api调用得到以下exception – 消息是模糊的,所以我无法理解发生了什么 – 这个演员在其他情况下工作不确定这里有什么问题: 例外: InnerException: System.Reflection.TargetInvocationException _HResult=-2146232828 _message=Exception has been thrown by the target of an invocation. HResult=-2146232828 IsTransient=false Message=Exception has been thrown by the target of an invocation. Source=mscorlib StackTrace: at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, […]

从反序列化期间添加的JObject中删除双花括号

我有一个JSON字符串,以大括号“{}”开头和结尾。 然后我反序列化对象,但是当这个完成时,我看到我现在在开头和结尾“{{}}”有双花括号。 我的代码看起来像这样 //deserializeobject json string into jobject JObject loanVersionedDoc = JsonConvert.DeserializeObject(s); //Get the latest value from versioned document JObject loanLatestVersion = Versioning.demultiplicifyingParseForLatest(loanVersionedDoc); //TODO get the latest activity.isComplete value string activityCompletionStatus = (string)loanVersionedDoc.GetValue(“Activities[0].isComplete”); 这就是我的JSON字符串的样子 “{ \”_id\” : \”582c459d54b6e43d307929f8\”, \”LoanName\” : … } 这就是我的loanVersionedDoc的样子 {{ “LoanName”: “Test One”, “isActive”: “True”, “Stages”: [ { “StageName”: “Stage One”, […]

在Web.API控制器中自动反序列化为类似字符串的类

我有一个Web.API端点,它将这样的对象作为参数: public class Person { public string FirstName { get; set; } public string LastName { get; set; } public int Age { get; set; } public UserName UserName { get; set; } } 例如: [Route(“api/person”)] [AcceptVerbs(“POST”)] public void UpdatePerson(Person person) { // etc. } (这只是一个例子 – 我们实际上并没有通过我们的Web.API端点接受用户名) 我们的UserName类是一个将string隐式运算符定义的对象,因此我们将它视为整个应用程序中string的处理方式。 遗憾的是,Web.API不会自动知道如何将相应的JavaScript Person对象反序列化为C# Person对象 – 反序列化的C# Person对象始终为null。 […]

ASP.NET5 MVC6的模型绑定问题

我试图在角度表单上发布一些JSON数据到我的ASP.NET5 MVC6控制器动作。 模型绑定器似乎不起作用。 不知道我在这里缺少什么。 我的ASP控制器: public class DefaultController : Controller { public IActionResult Index() { return View(); } [HttpPost] public IActionResult SubmitTest(QTestViewModel model) { return Json(“true”); } } 我的角度控制器: angular.module(“testActiveMq”, []) .controller(“MqTestController”, [“$scope”, “$http”, function ($scope, $http) { // Submit Form $scope.submitForm = function () { debugger; var formData = (this.data) ? angular.toJson(this.data) : null; […]