【问题标题】:Invalid property identifier character: ‘. Path '', line 1, position 1 when parsing json string to object无效的属性标识符字符:'。将json字符串解析为对象时的路径'',第1行,位置1
【发布时间】:2020-12-15 13:50:03
【问题描述】:

我收到无效的属性标识符字符:'。将 json 字符串解析为对象时,路径 '',第 1 行,位置 1。 我的 Json 字符串是这样的

{‘name’ : ‘Account’ , ‘placeholder’ : ‘Enter Accountant Name’ , ‘label’ : ‘Account Name’ , ‘type’ : ‘string’ , ‘mode’: ‘multiline’}

类看起来像这样

public class TemplateModel
{
    public string name { get; set; }

    public string type { get; set; }

    public string placeholder { get; set; }

    public string label { get; set; }

    public string mode { get; set; } = "single";
}

我在这一行遇到错误。

var list = JsonConvert.DeserializeObject(d);

我检查了 Newtonsoft.Json 文档并在我复制示例并替换为我的键和静态值时找到了一个示例。它工作正常。示例中的字符串如下所示。

       var c= @"{'name': 'james@example.com', 'type': 'string', 'label': 'Name', 'placeholder':'Enter Name', 'mode': 'multiline'}";

当我在 json 验证器在线验证我的 json 字符串时,它验证正确,除了它将我的 ' ' 替换为 " " 但我使用了 ' ',因为它在 Newtonsoft.Json 示例中是这样使用的。

我正在从 word 文件中读取我的 json 字符串模板。我的 json 在文本 visulazar 中看起来像这样。

https://ibb.co/XjWrmS7

请帮忙。

我在小提琴中创建了这个问题,请检查https://dotnetfiddle.net/BTma0B

【问题讨论】:

  • 您的第一个 JSON 字符串看起来像是包含智能引号字符而不是“普通”引号。例如,你有'和',但它们都应该是'字符。
  • 我已经尝试过您的示例,没有出现错误。 dotnetfiddle.net/UCtYTv
  • @JoeSewell 我已经尝试过使用“正常”引号和 ' ' ,但仍然遇到同样的问题。使用 ' ' 的原因是因为 Newtonsoft.Json 中提到了 ' '。此外,当我使用带有 ' ' 的静态 json 字符串时也可以正常工作。
  • @MuzafferGalata 当我像您在示例中使用的那样使用静态字符串时,它工作正常。我通过读取一个单词文件然后使用正则表达式来获取这个特定的模式来获取我的字符串。我的动态 json 字符串看起来像这样 {'name' : 'Account' , 'placeholder' : 'Enter Accountant Name' , 'label' : 'Account Name' , 'type' : 'string' , 'mode': 'multiline' }
  • 有没有机会创建一个小小提琴样本?

标签: c# json json.net


【解决方案1】:

看起来您使用的是智能引号而不是普通引号。

我在服务器端尝试了以下正常引号

{
   "name":"Account",
   "placeholder":"Enter Accountant Name",
   "label":"Account Name",
   "type":"string",
   "mode":"multiline"
}

这很好用。

您能否通过更改引号来验证这是否适合您?

【讨论】:

  • 不工作。已经尝试过使用智能引号和普通引号但同样的错误。
【解决方案2】:

对我来说,引号有问题。意外的是,我没有在参数的开头和结尾加上双引号。删除末尾的双引号解决了这个问题。

你要么必须在两边加上双引号,要么不要把它们放在参数的两边。

【讨论】:

    猜你喜欢
    • 2016-12-06
    • 2019-12-31
    • 2020-05-18
    • 2020-01-15
    • 2018-05-28
    • 1970-01-01
    • 2020-01-08
    • 1970-01-01
    • 2020-11-26
    相关资源
    最近更新 更多