我正在尝试从C#中的dynamic
字符串创建一个JSON
对象。但我无法完成它。
通常我会通过Web服务调用获取JSON字符串,但在这种情况下,我只是创建了一个简单的类,我将其转换为JSON字符串。然后我尝试将其转换为具有完全相同结构的动态对象,就好像它是Entity
类的实例一样。但那就是我遇到麻烦的地方。
这是我变成JSON字符串的类:
public class Entity
{
public String Name = "Wut";
public String[] Scores = {"aaa", "bbb", "ccc"};
}
然后在我的代码的某处,我这样做:
var ent = new Entity();
// The Serialize returns this:
// "{\"Name\":\"Wut\",\"Scores\":[\"aaa\",\"bbb\",\"ccc\"]}"
var json = new JavaScriptSerializer().Serialize(ent);
dynamic dynamicObject1 = new JavaScriptSerializer().DeserializeObject(json);
dynamic dynamicObject2 = Json.Decode(json);
当我调试此代码时,我看到第一个dynamicObject1
返回Dictionary
。不是我真正想要的。
第二个dynamicObject2
看起来更像Entity
个对象。它有一个名为Name
的属性,带有一个值。它还有一个名为Scores
的动态数组,但出于某种原因,该列表结果为空......
Scores
对象中空dynamic
属性的屏幕截图:
所以到目前为止我没有运气试图将JSON字符串转换为动态对象。任何人都知道如何完成这项工作?
答案 0 :(得分:2)
使用Json.Net
dynamic dynamicObject1 = JsonConvert.DeserializeObject(json);
Console.WriteLine(dynamicObject1.Name);