如何从json对象中分离字符串

时间:2015-05-18 14:49:56

标签: c# json

当我在C#中使用以下代码时

var resultset = JsonConvert.DeserializeObject(objInputData.ServiceInputData);

我得到如下结果集

{
  "Inputdata": [
    {
      "EmpId": "13390",
      "ContractId": ""
    }
  ]
}

如何将EmpIdContractId放入C#中的变量?

以下是我将EmpId存储到变量中的代码。但这似乎是错误的。

var EmpId = resultset.EmpId;
var ContractId = resultset.ContractId;

我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:1)

首先,解释什么不起作用总是有帮助的。说这是“错误的”并不能真正帮助人们诊断你的问题。

您可能收到编译器错误,告诉您“EmpId不是对象属性”的效果。这是因为您正在调用的DeserializeObject版本返回objectobject没有EmpId属性。

最简单的解决方案是反序列化为强类型类(使用http://json2csharp.com生成):

public class Inputdata
{
    public string EmpId { get; set; }
    public string ContractId { get; set; }
}

public class RootObject
{
    public List<Inputdata> Inputdata { get; set; }
}

然后使用:

var result = JsonConvert.DeserializeObject<RootObject>(objInputData.ServiceInputData);

Inputdata实际上是一个列表,因此您可能会获得倍数。

foreach(var inputData in result.Inputdata)
{
    // inputData.EmpId
    // inputData.ContractId
}

答案 1 :(得分:0)

基于你的json,inputData是一个ARRAY,所以它就是

var EmpId = resultset.Inputdata[0].EmpId; 
var ContractId = resultset.Inputdata[0].ContractId;