2 回答
TA贡献1796条经验 获得超7个赞
对于这样的问题,您可以做两件事:
为传入的 json 对象创建数据模型,或
使用“动态”类型的对象
我强烈建议使用 Newtonsoft 的 Json.NET 来反序列化 json。 https://www.newtonsoft.com/json
TA贡献1921条经验 获得超9个赞
这个怎么样?:
public static string GetCsvFromJson(JToken node)
{
var result = "";
if (!node.HasValues)
return node.ToString();
foreach (var child in node.Children())
{
result += GetCsvFromJson(child) + ",";
}
return result.TrimEnd(',');
}
调用它:
string commaSeparatedValues = GetCsvFromJson(JToken.Parse(yourJsonString));
如果您已经序列化了 json 值,那么我将尝试编辑您的函数。如果类型名称包含列表,则不检查类型名称,顺便说一句,这是不安全的,您可以更进一步,直到对象是值类型或字符串(字符串是引用类型):
public static string DelimetedString(object obj)
{
var result = "";
if (obj.GetType().IsValueType || obj is string)
return obj.ToString();
if (obj is IEnumerable)
{
foreach (var item in (IEnumerable)obj)
{
result += DelimetedString(item) + ",";
}
}
else
{
foreach (var prop in type.GetProperties())
{
result += DelimetedString(prop.GetValue(obj)) + ",";
}
}
return result.TrimEnd(',');
}
- 2 回答
- 0 关注
- 268 浏览
添加回答
举报