- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章用Newtonsoft将json串转为对象的方法(详解)由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
首先,将json串转为一个JObject对象:
1
|
JObject jo = (JObject)JsonConvert.DeserializeObject(CurrentSelectedItemReq);
|
这个JObject是一个“值对”类型,比如说我们的json串是这样:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
{
"rows"
:[
[
{
"NumIid"
:
"001"
},
{
"PicUrl"
:
"xxx.png"
},
{
"Title"
:
"xxxxx"
},
{
"Price"
:
"xxx"
},
{
"OuterId"
:
"xxxx"
}
],
[
{
"NumIid"
:
"002"
},
{
"PicUrl"
:
"xxx.png"
},
{
"Title"
:
"xxxxx"
},
{
"Price"
:
"xxx"
},
{
"OuterId"
:
"xxxx"
}
],
[
{
"NumIid"
:
"003"
},
{
"PicUrl"
:
"xxx.png"
},
{
"Title"
:
"xxxxx"
},
{
"Price"
:
"xxx"
},
{
"OuterId"
:
"xxxx"
}
]
]
}
|
那么可以jo["rows"]就是一个数组,如果这个反之如果不是数组可能是一个对象,那么我们根据他实际是一个什么值来进行强制转换.
以上面这个json串为例,我们这样取到这个数组:
JArray arr = (JArray)jo["rows"],
我们发现这个数组里面还是一个数组,而里层数组里面才是一个object,那么我们可以这样取:
1
2
3
4
5
6
7
8
9
10
11
12
|
for
(
int
i = 0; i < arr.Count; i++)
{
JArray arr2 = (JArray)arr[i];
for
(
int
j = 0; j < arr2.Count; j++)
{
JObject obj = (JObject)arr2[j];
Response.Write(obj[
"NumIid"
]);
Response.End();
}
}
|
如果实际是一个数组,我们就用JArray强制转换,如果实际是一个值对,我们就用JObject强制转换.
最后一层应该是一个值对类型的object,怎么把这些值全部取出来?
最后应该是形如:
{"NumIid":"003"} 。
取值很简单,直接:
string str=obj["NumIid"],
问题是有时候这个obj是这样的:
{"PicUrl":"xxx.png"} 。
而且你不知道他什么时候是什么.
这时应该这样取:
1
2
3
4
5
6
7
|
foreach
(KeyValuePair<
string
, JToken> kp
in
obj)
{
Response.Write(kp.Key);
Response.Write(
"="
);
Response.Write(kp.Value);
Response.End();
}
|
以上这篇用Newtonsoft将json串转为对象的方法(详解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我.
最后此篇关于用Newtonsoft将json串转为对象的方法(详解)的文章就讲到这里了,如果你想了解更多关于用Newtonsoft将json串转为对象的方法(详解)的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我在谷歌上花了很长时间,所以如果这是一个简单的修复请原谅我,但我找不到任何与 C# 中这个特定问题的修复相关的内容。 当尝试使用以下代码时,出现此错误: string obj = JsonConver
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 去年关闭。 Improve this
我正在尝试重新创建这个 json: { "request": { " TestRequest": { "OrderID": {
我正在测试我的 Web API。模拟数据我有这个: var objs = ((JArray)JsonConvert.DeserializeObject("{ \"PrintId\":10,\"Head
目前正在尝试使用 fixer.io API 在 C# 中创建货币转换。 我在从 Twitter API 解析 JSON 时使用了与下面类似的方法,并且没有任何问题,我不完全确定这里发生了什么。 API
我正在尝试建立 Mike Jansen 的 JIRA REST Client ,我正在尝试提取 JIRA 版本信息。我是 JSON 的新手,所以我不确定这只是格式问题还是什么。 调试时,我有以下标记:
我正在尝试使用 将对象动态序列化到即时窗口中 Newtonsoft.Json.JsonConvert.SerializeObject(myObj); 但是我得到以下错误 The type 'Newto
我无法在 Visual Studio 2013 中构建解决方案。 这发生在我将我的 JSON.NET 包更新到 6.0.1 之后。在此之前,它就像一个魅力。 有什么想法吗? PS:这可能是关于 OWI
当有如下代码时 var TermSource = token.Value("annotations") .Values("Term Source") .FirstOrDefault
我需要将选中的复选框代码从 JavaScript 传递给 C#。我能够通过 JSON 发送代码。我的 JSON 值以 JArray 的形式出现。我在标题中得到了异常(exception)。 JSON:
注意:解决重定向问题后,我遇到了另一个问题,即出现错误“无法将 Newtonsoft.Json.Linq.JArray 转换为 Newtonsoft.Json.Linq.JToken”。因此,在我的回
我有以下简单的 POCO: public class ApiKey { public ApiKey(string key, string owner, List claims = nu
我查过这个问题,但我没有看到太多答案,显然没有一个有帮助,否则我不会问。我是 .NET 新手。 我的本地环境是Win7,Microsoft Virtual Web Developer 2010 Exp
好的-我已经将这个问题打了几个小时。是时候寻求帮助了。 我刚刚将Web应用程序项目升级到ASP.NET MVC 4 RC和新的WebApi。 我的Web api方法现在返回EMPTY json“{}”
我想忽略类中的某些属性,但出于多种原因我想保留类 POCO。因此我不想引入对 Json.NET 的依赖,也不想使用 JsonIgnoreAttribute。 有没有办法自定义契约(Contract)解
我正在尝试修复我编写的 WinForms 程序中的错误;我正在解析一个 JSON 字符串,然后将一些结果放入各种变量中。 有时,JSON 的特定元素不存在(出于真正的原因),因此我尝试使用以下代码来处
我只是尝试使用 C# 中的 Newtonsoft JSON 库将文件中的一些 JSON 反序列化为对象列表。以下是 MeetingFile.txt 文件的内容: [ { "People":
这是一个非常奇怪的错误发生。我有这些对象: public class Mobile_SettingModels { public string Token { get; set; }
我粘贴了 http://www.codeproject.com/Tips/789481/Bridging-the-Gap-between-Linqpad-and-Visual-Studio 中的代码进
这个问题在这里已经有了答案: Can I optionally turn off the JsonIgnore attribute at runtime? (3 个答案) 关闭 4 年前。 我目前正
我是一名优秀的程序员,十分优秀!