【发布时间】: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://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' }
-
有没有机会创建一个小小提琴样本?