【发布时间】:2022-01-01 16:49:15
【问题描述】:
我正在尝试读取这个 json 字符串 players.Metadata:
{"drunk":0,"isbleeding":false,"stress":5,"licences":{"drive_boat":false,"hunting":false,"business":false,"driver_bike":false,"dmv":true,"weapon":false,"drive_truck":false,"drive_fly":false,"driver":true},"tracker":false,"craftingrep":0,"commandbinds":[],"phonedata":{"SerialNumber":86505294,"InstalledApps":[]},"bloodtype":"B+","status":[],"walletid":"QB-40404499","poop":0,"isdead":false,"fingerprint":"NQ795L08aVN5152","jobrep":{"taxi":0,"trucker":0,"hotdog":0,"tow":0},"callsign":"NO CALLSIGN","armor":100,"hunger":83.19999999999709,"criminalrecord":{"hasRecord":false},"inside":{"apartment":[]},"inlaststand":false,"ishandcuffed":false,"fitbit":[],"attachmentcraftingrep":0,"inpdjail":0,"beard":0.0,"injail":0,"currentapartment":"apartment56922","jailitems":[],"phone":[],"clean":98.0,"dealerrep":0,"drug":0,"thirst":84.79999999999927}
这是 json 可视化工具的外观:
这是我正在使用的代码:
Metadata.cs(仅包括与错误相关的字段,因为其他字段正在工作)
public class Metadata
{
/* All other fields are working or didn't step into them */
public string fitbit { get; set; }
}
Main.cs
Metadata metadata = new Metadata();
metadata = JsonSerializer.Deserialize<Metadata>(players.Metadata);
错误消息: System.Text.Json.JsonException: '无法将 JSON 值转换为 System.String。路径:$.fitbit |行号:0 | BytePositionInLine:650。'
如何正确转换?
【问题讨论】:
-
[ ]表示数据类型为数组/列表。您的fitbit属性被声明为string。将数据类型更改为数组应该可以解决问题(只要其他一切正常) -
请尝试将类型从
string更改为数组类型,例如object[]。