C#调用京东的API接口,如何解析返回的JSON

司徒彦 2017-02-16 07:09:43

{
"jingdong_etms_waybillcode_get_responce":
{
"code":"0","
resultInfo":
{
"code":100,
"deliveryIdList":["VF33700812983"],
"message":"成功"
}
}
}

我调用京东API的接口,成功给我返回一个JSON字符串,但是这个字符串用以往的方式解析不出来,请问有做过的吗,指点一下这个字符串怎么解析。
我使用了如下的方式,dhmodel 是实体类:

public class dhmodel
{
/// <summary>
/// 托运单号
/// </summary>
public string code { get; set; }
/// <summary>
/// 条码
/// </summary>
public string deliveryIdList { get; set; }
/// <summary>
/// 类型
/// </summary>
public string message { get; set; }
}
string p = "[{\"code\":100,\"deliveryIdList\":[\"VF33700812983\"],\"message\":\"成功\"}]";
JavaScriptSerializer Serializer = new JavaScriptSerializer();
List<dhmodel> objs = Serializer.Deserialize<List<dhmodel>>(p);



dhmodel shhhmodel = JsonConvert.DeserializeObject<dhmodel>(p);
...全文
545 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2017-02-17
  • 打赏
  • 举报
回复
        static void Main(string[] args)
        {
            string p = "{\"jingdong_etms_waybillcode_get_responce\":{\"code\":\"0\",\"resultInfo\":{\"code\":100,\"deliveryIdList\":[\"VF33700812983\"],\"message\":\"成功\"}}}";
            var a = JObject.Parse(p)["jingdong_etms_waybillcode_get_responce"];
            Console.WriteLine(a["resultInfo"]["deliveryIdList"][0]);
        }
正怒月神 2017-02-17
  • 打赏
  • 举报
回复
编辑-选择性黏贴,创建实体类
巴士上的邂逅 2017-02-17
  • 打赏
  • 举报
回复
你将下面json复制到粘贴板,然后在vs2013或者更高的vs版本下的一个*.cs文件里,依次选择:编辑菜单-》选择性粘贴-》将json粘贴为类,然后拿着这个类去实例化试试

{
	"jingdong_etms_waybillcode_get_responce":
	{
		"code":"0","
		resultInfo":
		{
			"code":100,
			"deliveryIdList":["VF33700812983"],
			"message":"成功"
		}
	}
}
司徒彦 2017-02-17
  • 打赏
  • 举报
回复
引用 3 楼 shingoscar 的回复:
code是int deliveryIdList是数组 到你这边全string,这就是所谓的以往的方式?
我发的是我调试好几次的都无效,最开始是int和string[] 但是还不好使,整个字符串是这样的:

string p = "{\"jingdong_etms_waybillcode_get_responce\":{\"code\":\"0\",\"resultInfo\":{\"code\":100,\"deliveryIdList\":[\"VF33700812983\"],\"message\":\"成功\"}}}";
司徒彦 2017-02-17
  • 打赏
  • 举报
回复
引用 1 楼 yuankaiwsl 的回复:
条码的改成这样
public string[] deliveryIdList { get; set; }
能不能给个具体的例子 谢谢
司徒彦 2017-02-17
  • 打赏
  • 举报
回复
我发的是我调试好几次的都无效,最开始是int和string[] 但是还不好使,整个字符串是这样的:

string p = "{\"jingdong_etms_waybillcode_get_responce\":{\"code\":\"0\",\"resultInfo\":{\"code\":100,\"deliveryIdList\":[\"VF33700812983\"],\"message\":\"成功\"}}}";
Poopaye 2017-02-16
  • 打赏
  • 举报
回复
code是int deliveryIdList是数组 到你这边全string,这就是所谓的以往的方式?
stherix 2017-02-16
  • 打赏
  • 举报
回复
不用实体类 直接反序列化 然后通过Dictionary或者数组去取也行
巴士上的邂逅 2017-02-16
  • 打赏
  • 举报
回复
条码的改成这样
public string[] deliveryIdList { get; set; }

110,567

社区成员

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

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

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