c# - 使用 ServiceStack.Text : determine JSON is Array, 对象或字符串?

标签 c# json servicestack json-deserialization servicestack-text

使用 JSON.net 我可以按照此 link 中的回答进行操作

string content = File.ReadAllText(path);
var token = JToken.Parse(content);

if (token is JArray)
{
    IEnumerable<Phone> phones = token.ToObject<List<Phone>>();
}
else if (token is JObject)
{
    Phone phone = token.ToObject<Phone>();
}

但是我可以在 ServiceStack.Text 库中做类似的事情吗?

最佳答案

你可以这样做:

string content = File.ReadAllText(path);

if (JsonUtils.IsJsArray(content))
{
    IEnumerable<Phone> phones = JsonSerializer.DeserializeFromString<List<Phone>>(json);
}
else if (JsonUtils.IsJsObject(content))
{
    Phone phone = JsonSerializer.DeserializeFromString<Phone>(json);
}

关于c# - 使用 ServiceStack.Text : determine JSON is Array, 对象或字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39933351/

相关文章:

javascript - 脚本在 Web 浏览器控件中不起作用

javascript - 在 react-native 中迭代 JSON 数组

javascript - 如何根据对象数组中的特定键设置 True 和 False?

javascript - 如何让 Swagger 将 API key 作为 http 而不是在 URL 中发送

c# - 如何让 Swagger 插件在自托管服务堆栈中工作

c# - 关闭文档时抛出“文档没有页面”错误

javascript - C# 如何使用 javascript 或 jquery 调用 MVC Controller 功能

javax.servlet.ServletException : org. glassfish.jersey.server.ContainerException : java. lang.NoClassDefFoundError:org/xml/sax/helpers/DefaultHandler

c# - 我在 Servicestack session 文档中遗漏了一些东西

c# - 如何处理在一个平台上同步但在另一个平台上异步的代码