我对C#非常陌生并且正在使用Visual Studio和Xamarin。 我有一个Web服务,我从中得到一个JSON结果:
{"Vorname": "MYNAME", "AusweisNr": "894", "MitgliedsNr": "33203", "returnstr": "None", "returncode": "0"}
我尝试做的是使用我获得的数据来填充一些文本字段,但我不明白如何转换它。我已经在JsonConvert
玩了一下但是无法让它发挥作用。
答案 0 :(得分:4)
使用这些属性创建一个类:
public class SomeMeaningfulName
{
public string Vorname { get; set; }
public string AusweisNr { get; set; }
public string MitgliedsNr { get; set; }
public string returnstr { get; set; }
public string returncode { get; set; }
}
然后你可以将字符串反序列化为该类:
var myObj = JsonConvert.DeserializeObject<SomeMeaningfulName>(yourJsonString);
答案 1 :(得分:0)
您可以创建一个这样的简单类:
public class Person
{
public string Vorname { get; set; }
public string AusweisNr { get; set; }
public string MitgliedsNr { get; set; }
public string returnstr { get; set; }
public string returncode { get; set; }
}
并将其反序列化:
string json = "{'Vorname': 'MYNAME', 'AusweisNr': '894', 'MitgliedsNr': '33203', 'returnstr': 'None', 'returncode': '0'}"
Person person = new JavaScriptSerializer().Deserialize<Person>(json);
在这种情况下,我使用JavascriptSerializer因为它非常简单易用,但如果你真的需要它也可以使用JSONConverter
答案 2 :(得分:0)
为了使用JsonConvert进行转换,您需要一个包含共享JSON对象名称的字段的类,并且它们都需要公开。试试这个
MyJsonObject obj= JsonConvert.DeserializeObject<MyJsonObject>(jsonData);
如果你愿意,你也可以把它变成公共财产而不是变量。要转换,你需要做这样的事情。
jsonData
其中.scrollTo(top, left)
是包含您的JSON代码的字符串。然后,您可以将所有数据复制到文本字段。
答案 3 :(得分:0)
获取您的JSON字符串并在此WebSite中设置,此网站将为您创建一个类对象,获取此对象并放入您的项目。
例如:
public class RootObject // object name
{
//atributtes names
public string Vorname { get; set; }
public string AusweisNr { get; set; }
public string MitgliedsNr { get; set; }
public string returnstr { get; set; }
public string returncode { get; set; }
}
因此,您将下载此JSON并输入String var 例如:
var Apiurl = "http://youAPI.com/something/something/";
var JSONString= new System.Net.WebClient().DownloadString(Apiurl);//this will download all text what the Apiurl return
之后,您将把JsonString转换/反序列化为对象。
RootObject objectJSON = JsonConvert.DeserializeObject<RootObject>(JSONString);
这最后一个代码是什么时候发生的?
yourJsonObject nameForThisObject = JsonConvert.DeserializeObject<yourObjectJsonClass>(yourJsonString);
注意:你的ObjectJsonClass(我的RootObject)必须具有相同的Json属性。