【问题标题】:Error when deserializing my string to object in C#将我的字符串反序列化为 C# 中的对象时出错
【发布时间】:2016-07-20 19:44:25
【问题描述】:

我正在尝试在这里反序列化我的字符串

LicenseName=10&StartDate=7%2F20%2F2016&EndDate=09%2F28%2F2016

使用这种方法

var serializer = new JavaScriptSerializer();
        ConsumedUserLicense jsonObject = serializer.Deserialize<ConsumedUserLicense>(licenseDetails);

到这个对象

public class ConsumedUserLicense
{
    public int LicenseId { get; set; }
    public string LicenseName { get; set; }
    public DateTime StartDate { get; set; }
    public DateTime EndDate { get; set; }
}

但我收到一个错误提示

“无效的 JSON 原语:LicenseName。

【问题讨论】:

  • 该字符串不是有效的 JSON。它甚至不是 invalid JSON。你是从哪里弄来的?这是一个查询字符串,不是吗?来吧,坦白吧。我们在这里都是朋友。
  • 我在 Javascript 中使用了 $('#form).serialize()。我应该怎么做?
  • 是的,该方法返回正确编码的查询字符串(如在 URL 中),而不是 JSON。没有直接的方法可以直接在 JS 中将表单序列化为 JSON,但 this answer 可能会这样做。请注意,我还没有对其进行测试,现在他们正在对我咆哮,要求我填写一些愚蠢的人力资源表格。
  • 好的,那么我如何在c#中反序列化查询字符串???
  • a) 改用 json。 b) 将确切的问题粘贴到 Google 中,然后单击页面顶部的 StackOverflow 链接,直到您看到一个有效的链接。我得跑了,他们会搞砸我的牙科保险,我会看起来像 Shane MacGowan。

标签: c# serialization


【解决方案1】:

您的 JSON-String 不是正确的 JSON-String。尝试将其复制粘贴到 JSON 验证器中以进行检查:JSON Formatter and Validator

来自 json.org:

对象是一组无序的名称/值对。一个对象以 {(左大括号)开始,以 }(右大括号)结束。每个名称后跟 :(冒号),名称/值对用 ,(逗号)分隔。

另见:json.org

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多