我想从字符串中获取单个数据,任何人都可以帮助我单独拆分ID内容。我的代码存储结果值:
private void sendPostCompleted(object sender, UploadStringCompletedEventArgs e)
{
try
{
MessageBox.Show("Success..");
MessageBox.Show(e.Result);
string res=(string)e.Result;//here res contains my data..
//need to get ID value alone.
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
答案 0 :(得分:6)
使用json2csharp为您的JSON字符串创建一个C#类。来自JSON的简化示例:
public class RootObject
{
public string name { get; set; }
public string description { get; set; }
public string timezone { get; set; }
public string id { get; set; }
}
//You can make the id of type int if you want
使用JSON的最快方法是使用Json.NET。下载zip并使用文件夹Portable40
中的dll,这是与Windows Phone 7兼容的版本。在项目中引用dll,然后您的代码应该类似于:
string jsonString = "{\"name\":\"Qwer\", \"description\":\"\", \"timezone\":\"UTC\", \"id\":\"2912\"}";
var obj = Newtonsoft.Json.JsonConvert.DeserializeObject<RootObject>(jsonString);
int id = Convert.ToInt32(obj.id);
//value of id: 2912
答案 1 :(得分:1)
如果您不希望某个类反序列化,您可以执行以下操作:
JsonObject jsonObject = new JsonObject(e.Result);
string res= jsonObject["id"];
答案 2 :(得分:1)
我解决了我的问题..这是我的示例代码..它很有效..
dynamic stuff = JsonConvert.DeserializeObject(res);
int id=stuff.id;
答案 3 :(得分:0)
您可能应该将其反序列化为对象,然后检索您的值。
首先创建一个类,将所有字段作为参数。
class ResponseObject{
public string Name{get;set;}
public string Description{get;set;}
...
}
等等。
然后你可以反序列化这个响应,
ResponseObject response = new JavaScriptSerializer().Deserialize<ResponseObject>(res);