C# 如果我没有';我不知道数据结构?
如果我没有模型,是否可以将JSON转换为匿名对象 下面是一个模型示例:C# 如果我没有';我不知道数据结构?,c#,json,.net-core,json.net,C#,Json,.net Core,Json.net,如果我没有模型,是否可以将JSON转换为匿名对象 下面是一个模型示例: var json = "{\"firstName\": \"John Doe\", \"lastName\": \"Doe\"}"; var model = new { firstName = "", lastName = "" }; var result = JsonConvert.DeserializeAnonymousType(json, model); //result: { firstName = John Doe
var json = "{\"firstName\": \"John Doe\", \"lastName\": \"Doe\"}";
var model = new { firstName = "", lastName = "" };
var result = JsonConvert.DeserializeAnonymousType(json, model);
//result: { firstName = John Doe, lastName = Doe }
如果我不知道示例中所示的数据结构,如何进行相同的操作
问题是我实际上正在使用一些库,如果我将动态对象作为参数传递,它就不起作用。
我需要使用的唯一方法是传递匿名对象,如:
instance.SomeMethod(new { firstName = "John", lastName = "Doe" })
您可以与反序列化对象一起使用
:
var json = "{\"firstName\": \"John Doe\", \"lastName\": \"Doe\"}";
var result = JsonConvert.DeserializeObject<dynamic>(json);
var firstName = result.firstName;
var json=“{\“firstName\”:\“John Doe\”,\“lastName\”:\“Doe\”}”;
var result=JsonConvert.DeserializeObject(json);
var firstName=result.firstName;
您可以与反序列化对象一起使用:
var json = "{\"firstName\": \"John Doe\", \"lastName\": \"Doe\"}";
var result = JsonConvert.DeserializeObject<dynamic>(json);
var firstName = result.firstName;
var json=“{\“firstName\”:\“John Doe\”,\“lastName\”:\“Doe\”}”;
var result=JsonConvert.DeserializeObject(json);
var firstName=result.firstName;
您可以使用动态
类型,但如果在Xamarin中工作,则需要包含名为Microsoft.CSharp
的引用
下面是一个例子:
var json = "{\"firstName\": \"John Doe\", \"lastName\": \"Doe\"}";
dynamic x = JsonConvert.DeserializeObject(json);
Console.WriteLine(x.firstname.ToString());
//You'll need to convert to data type especially in boolean, int, float, double
下面是将object
转换为json
:
dynamic x = new ExpandoObject();
x.param1 = "";
x.param2 = "";
string json = JsonConvert.SerializeObject(x);
您可以使用dynamic
类型,但如果在Xamarin中工作,则需要包含名为Microsoft.CSharp
的引用
下面是一个例子:
var json = "{\"firstName\": \"John Doe\", \"lastName\": \"Doe\"}";
dynamic x = JsonConvert.DeserializeObject(json);
Console.WriteLine(x.firstname.ToString());
//You'll need to convert to data type especially in boolean, int, float, double
下面是将object
转换为json
:
dynamic x = new ExpandoObject();
x.param1 = "";
x.param2 = "";
string json = JsonConvert.SerializeObject(x);
尝试使用GSon,您应该导入依赖项尝试使用GSon,您应该使用动态:
var json = "{\"firstName\": \"John Doe\", \"lastName\": \"Doe\"}";
dynamic result = JsonConvert.DeserializeObject(json);
您还可以在访问该属性之前检查该属性是否存在,并使用以下代码避免崩溃:
var dictionary = JsonConvert.DeserializeObject<Dictionary<string, string>>(result .ToString());
if (dictionary.ContainsKey("firstName"))
//do something with "firstName"
var dictionary=JsonConvert.DeserializeObject(result.ToString());
if(dictionary.ContainsKey(“firstName”))
//用“名字”做点什么
希望它能使用动态:
var json = "{\"firstName\": \"John Doe\", \"lastName\": \"Doe\"}";
dynamic result = JsonConvert.DeserializeObject(json);
您还可以在访问该属性之前检查该属性是否存在,并使用以下代码避免崩溃:
var dictionary = JsonConvert.DeserializeObject<Dictionary<string, string>>(result .ToString());
if (dictionary.ContainsKey("firstName"))
//do something with "firstName"
var dictionary=JsonConvert.DeserializeObject(result.ToString());
if(dictionary.ContainsKey(“firstName”))
//用“名字”做点什么
希望它能起作用你考虑过吗?问题是:你下一步想做什么?下一行中的代码如何与此对象交互?您想访问任何属性吗?您如何知道该属性的名称?按照下面的建议反序列化到dynamic
,将生成JObject
ExpandoObject
是另一个可能适用于您的第三方库的选项,请参阅。在运行时真正创建匿名类型对象非常困难,请参见。您考虑过吗?问题是:下一步要做什么?下一行中的代码如何与此对象交互?您想访问任何属性吗?您如何知道该属性的名称?按照下面的建议反序列化到dynamic
,将生成JObject
ExpandoObject
是另一个可能适用于您的第三方库的选项,请参阅。在运行时真正创建匿名类型对象非常困难,请参阅。