【发布时间】:2021-04-17 11:13:27
【问题描述】:
我正在尝试使用 C# 了解 JSON 的序列化/反序列化,因此编写了以下类来提供帮助。
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
namespace HelloWorld
{
class Size
{
public double ArmLength { get; set; }
public HandPosition HandPosition { get; set; }
}
class HandPosition
{
public double X { get; set; }
public double Y { get; set; }
public double Z { get; set; }
}
class Dictionary
{
static void Main(string[] args)
{
Size size = new Size();
size.ArmLength = 2.13;
size.HandPosition = new HandPosition
{
X = 2.13,
Y = 2.14,
Z = 2.15
};
string output = JsonConvert.SerializeObject(size, Formatting.Indented);
Console.WriteLine("Output: " + output);
var values = JsonConvert.DeserializeObject<Dictionary<string, string>>(output);
Console.WriteLine(decimal.Parse(values["HandPosition"]["X"]));
Console.WriteLine(decimal.Parse(values["ArmLength"]));
Console.WriteLine("Press Enter to continue");
Console.Read();
}
}
}
当我运行它时,我在var values = JsonConvert.DeserializeObject<Dictionary<string, string>>(output); 得到以下异常:
Newtonsoft.Json.JsonReaderException: '解析值时遇到意外字符: {.路径“HandPosition”,第 3 行,位置 19。
我在这里做错了什么,我该如何解决?
【问题讨论】:
-
因为
HandPosition是一个对象。你试过Dictionary<string, object>吗?