gpt4 book ai didi

c# - 无法反序列化名称为 "$type"的 json 属性

转载 作者:太空狗 更新时间:2023-10-30 01:13:52 26 4
gpt4 key购买 nike

<分区>

名为“$type”的 json 属性名称似乎有问题。
如果我将名称更改为“$typ”或“$typee”,它似乎可以正常工作。
起初我以为有一个不可见的 Unicode 字符,但事实并非如此,因为我将 json 和属性值都复制粘贴到 Jon Skeet's Unicode Explorer 并且我看不到任何奇怪的东西

using Newtonsoft.Json;
using System;

namespace ConsoleAppCompare
{
class Program
{
static void Main(string[] args)
{
string json = @"{
""$type"": ""someText"",
""$someName"": ""MoreText"",
""$ThisWorksToo"": ""en"",
""Counting"": true
}";

var movie = JsonConvert.DeserializeObject<Movie>(json);

Console.WriteLine("Type:"+ movie.type); //type is null here
Console.ReadLine();
}
}

class Movie
{
[JsonProperty(PropertyName = "$type")]
public string type { get; set; }

[JsonProperty(PropertyName = "$someName")]
public string Name { get; set; }

[JsonProperty(PropertyName = "$ThisWorksToo")]
public string Language { get; set; }

public bool Counting { get; set; }
}
}

谁有解释吗?我正在使用 Newtonsoft.Json.10.0.3

更新如果我将属性(property)移到别处,它似乎会起作用

string json = @"{
""$someName"": ""MoreText"",
""$ThisWorksToo"": ""en"",
""$type"": ""someText"",
""Counting"": true
}";

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com