如何从JSON响应中获取值
我必须对JSON响应来自数据库API。如何从JSON响应中获取值
我的JSON数据:
{
"AccessToken":"1929c63a-9c72-4c0d-aea8-345c0b5411e9",
"LoggedInUserID":1,
"LookupData":{
"LiquiditySources":[
{
"ID":1,
"ParentID":null,
"Name":"testname1",
"SequenceNo":null,
"Caption":"test1",
"ConnectivityInfo":
"{\"Port\":11111,\"Username\":testuser1,\"Password\":\"password1\"}"
},
{
"ID":2,
"ParentID":null,
"Name":"testname2",
"SequenceNo":null,
"Caption":"test2",
"ConnectivityInfo":
"{\"Port\":22222,\"Username\":testuser2,\"Password\":\"password2\"}"
}
]
}
}
我想存储在不同的变量,这个响应值请人帮助我,这是我最后一年的项目。我正在使用Windows应用程序c#
你应该反序列化这个JSON类,然后做任何你想要的类对象。
您可以使用NewtonSoft.Json dll来达到此目的。如果你只想得到所有ConnectivityInfo
值,也可以使用LINQ
List<LiquiditySource> ls = obj.LookupData.LiquiditySources;
foreach(LiquiditySource liquiditySource in ls)
{
string connectivityInfo = liquiditySource.ConnectivityInfo;
}
:
public class LiquiditySource
{
public int ID { get; set; }
public object ParentID { get; set; }
public string Name { get; set; }
public object SequenceNo { get; set; }
public string Caption { get; set; }
public string ConnectivityInfo { get; set; }
}
public class LookupData
{
public List<LiquiditySource> LiquiditySources { get; set; }
}
public class SampleClass
{
public string AccessToken { get; set; }
public int LoggedInUserID { get; set; }
public LookupData LookupData { get; set; }
}
string json = "your json string";
SampleClass obj = JsonConvert.DeserializeObject<SampleClass>(json);
你可以得到这类似。
List<string> lsConnectivityInfo = obj.LookupData.LiquiditySources.Select(c => c.ConnectivityInfo).ToList();
如果你想furthur deserilize connectivityInfo
字符串对象并获取其属性,则必须再次反序列化到对象。 注意:您还必须修改您的JSON。
修改JSON:
{
"AccessToken": "1929c63a-9c72-4c0d-aea8-345c0b5411e9",
"LoggedInUserID": 1,
"LookupData": {
"LiquiditySources": [{
"ID": 1,
"ParentID": null,
"Name": "testname1",
"SequenceNo": null,
"Caption": "test1",
"ConnectivityInfo": "{\"Port\":11111,\"Username\":\"testuser1\",\"Password\":\"password1\"}"
}, {
"ID": 2,
"ParentID": null,
"Name": "testname2",
"SequenceNo": null,
"Caption": "test2",
"ConnectivityInfo": "{\"Port\":22222,\"Username\":\"testuser2\",\"Password\":\"password2\"}"
}]
}
}
作一次类:
public class ConnectivityInfo
{
public int Port { get; set; }
public string Username { get; set; }
public string Password { get; set; }
}
那么做到这一点:
foreach (LiquiditySource liquiditySource in ls)
{
string connectivityInfo = liquiditySource.ConnectivityInfo;
ConnectivityInfo connectivityInfoObj = JsonConvert.DeserializeObject<ConnectivityInfo>(connectivityInfo);
}
你忘了提及[json2csharp.com](http://json2csharp.com/)生成类 –
还有其他的工具也可以做到这一点,它不是代码的一部分,我没有提到;) –
我获得了其他值,但我如何获得ConnectivityInfo值? –
也许这可以帮助你 - http://stackoverflow.com/问题/ 6620165/how-can-i-parse-json-with-c – smoksnes
无效的json,请至少提供正确的json – mybirthname
thi s被解析json数据 –