关于C#解析json的问题

tacono 2016-08-03 04:48:28
{
"DeliveryCode": "201607310001",
"DeliveryId": [
"0b8f4aca-31a6-4b2b-8c90-7b4611f3f88c",
"111 ",
"16e5ea2b-c60b-4779-9f91-feaa5a459eab",
"222 ",
"6b4a894b-6034-428c-ad79-d085f8419403",
"71864e48-7e60-4ddc-8021-cc358898561c",
"ac0740a2-778b-4705-b71f-db7b3a156889",
"d9211645-5f2c-41e7-92f0-05eaccc987d0"
],
"Exception": {
"0109cb51-e4dc-47dd-967c-fc9d8d248272": [
"113411",
"2451515"
],
"0109cb50-e4dc-47dd-967c-fc9d8d248272": [
"20165453"
]
},
"ReviceUser": "b6604269-7c8b-4906-89ce-c3cf465c8e4f",
"ShopsId": "042ff6cf-9fef-4a2a-aefe-8421781a0d10",
"UserToken": "1B1B51F467016496AEFE79286A2341DD5CB9B7F0EA3C48BD577E6E0E0AD9A36E2486445A19F87839753C64BB02EC6FDC3D1C461CA8BB200674409B77ADC090FE88022FD081AEDFB9F953CA52F8A3CF4A47BB95DF0DF9F0C2F3225FA8A79AFF08"
}

Json如上
现在Exception的这段是由Java的HashMap<String,List<String>>序列化来的

[WebInvoke(UriTemplate = "Mobile/ExceptionCommit", Method = "POST", ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped)]
DataResult ExceptionCommit(string UserToken, string DeliveryId, string DeliveryCode, string GoodsLoseCode, int LoseNumber, decimal LoseBidPrice, string ExceptionDescription,string CreateUser);
接口入口代码如上
我接口使用Dictionary<string,List<string>>无法接收数据 请问我该怎么接收这段Exception里的数据
...全文
320 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
showjim 2016-08-04
  • 打赏
  • 举报
回复
如果楼主可以得到JSON字符串的话,试试fastCSharp
        class x
        {
            public string DeliveryCode;
            public string[] DeliveryId;
            public System.Collections.Generic.Dictionary<string, string[]> Exception;
            public string ReviceUser;
            public string ShopsId;
            public string UserToken;
        }
            x value = fastCSharp.emit.jsonParser.Parse<x>(json);
我叫小菜菜 2016-08-04
  • 打赏
  • 举报
回复
var data=JObject.parse(jsonStr); data["Exception"]则是一个array
yejianhui115 2016-08-04
  • 打赏
  • 举报
回复
写对象强制转换不行么?可以试试json.net
Benjay77 2016-08-04
  • 打赏
  • 举报
回复
引用 4 楼 u014179016 的回复:
[quote=引用 1 楼 Benjay77 的回复:] C#不是有直接操作JSON 的封装的类么 ? 自己百度看看
接口根本接不到这个数据 更别提封装了[/quote] 我是说C#有封装好的操作JSON 的类 不是要你自己封装。。
tacono 2016-08-03
  • 打赏
  • 举报
回复
引用 6 楼 will_stier 的回复:
没有理解LZ的意思.LZ是问怎么得到json字符串?还是得到了字符串不知道怎么转成json?
我用WCF写的接口 传进来的JSON数据会自动被反序列化 现在HashMap的JSON不能被反序列化了
will_stier 2016-08-03
  • 打赏
  • 举报
回复
没有理解LZ的意思.LZ是问怎么得到json字符串?还是得到了字符串不知道怎么转成json?
xuzuning 2016-08-03
  • 打赏
  • 举报
回复
Java 的 HashMap 等价于 C# Dictionary
tacono 2016-08-03
  • 打赏
  • 举报
回复
引用 1 楼 Benjay77 的回复:
C#不是有直接操作JSON 的封装的类么 ? 自己百度看看
接口根本接不到这个数据 更别提封装了
tacono 2016-08-03
  • 打赏
  • 举报
回复
引用 2 楼 yuankaiwsl 的回复:
简单生成实体类方法:将json复制到粘贴板,在项目里新建一个空cs文件,或者打开已有的cs,依次选择菜单:编辑-》选择性粘贴-》将Json粘贴为类,将会生成json对应的实体类
public class Rootobject
{
    public string DeliveryCode { get; set; }
    public string[] DeliveryId { get; set; }
    public Exception Exception { get; set; }
    public string ReviceUser { get; set; }
    public string ShopsId { get; set; }
    public string UserToken { get; set; }
}

public class Exception
{
    public string[] _0109cb51e4dc47dd967cfc9d8d248272 { get; set; }
    public string[] _0109cb50e4dc47dd967cfc9d8d248272 { get; set; }
}
Exception是HashMap<string,List<string>>的序列化 第一个string会变化 所以不能自己建对象来接
巴士上的邂逅 2016-08-03
  • 打赏
  • 举报
回复
简单生成实体类方法:将json复制到粘贴板,在项目里新建一个空cs文件,或者打开已有的cs,依次选择菜单:编辑-》选择性粘贴-》将Json粘贴为类,将会生成json对应的实体类
public class Rootobject
{
    public string DeliveryCode { get; set; }
    public string[] DeliveryId { get; set; }
    public Exception Exception { get; set; }
    public string ReviceUser { get; set; }
    public string ShopsId { get; set; }
    public string UserToken { get; set; }
}

public class Exception
{
    public string[] _0109cb51e4dc47dd967cfc9d8d248272 { get; set; }
    public string[] _0109cb50e4dc47dd967cfc9d8d248272 { get; set; }
}
Benjay77 2016-08-03
  • 打赏
  • 举报
回复
C#不是有直接操作JSON 的封装的类么 ? 自己百度看看

110,525

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧