如何从字符串中拆分单个数据..?

时间:2013-12-05 09:30:37

标签: c# .net windows-phone-7 split webclient

我想从字符串中获取单个数据,任何人都可以帮助我单独拆分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);
    }
}

4 个答案:

答案 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);