如何从C#

时间:2017-07-08 12:53:00

标签: c# json

请帮助,我坚持这个

using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
     var result = streamReader.ReadToEnd();
     Console.WriteLine(result);
}

输出:

{
    "request_number":"REQ0010201",
    "request_id":"b1c8ba46db3ffa807ea0f4e9bf9619ca",
    "sys_id":"35c8ba46db3ffa807ea0f4e9bf9619ca"
}

但我希望仅打印request_id的输出:b1c8ba46db3ffa807ea0f4e9bf9619ca

4 个答案:

答案 0 :(得分:0)

如果返回数据是json,您可以选择两个选项:

  1. 在字符串中使用substring和indexof在request_id“:”
  2. 之后搜索数据
  3. 将json实现为类并在类中使用。为此,您可以使用microsoft或newtonsoft类。我更喜欢这个选项
  4. see this link

    希望我帮助你

答案 1 :(得分:0)

创建一个这样的类:

public class myresultclass
{
    public string request_number {get;set;}
    public string request_id {get;set;}
    public string sys_id {get;set;}
}

然后你改变你的功能:

using System.Web.Script.Serialization;
using System.IO;

public string mymethod()
{

    using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
    {
            var result = streamReader.ReadToEnd();

        using (var ms = new MemoryStream(Encoding.Unicode.GetBytes(result)))  
        {  
            // Deserialization from JSON  
            DataContractJsonSerializer deserializer = new DataContractJsonSerializer(typeof(myresultclass));  
        myresultclass obj = (myresultclass)deserializer.ReadObject(ms);  

        }

            Console.WriteLine(result);

        Console.WriteLine(myresultclass.request_id);
    }
}

注意:如果没有工作,我会用记事本写这个错误:)

答案 2 :(得分:0)

您可以通过JSON.NET

轻松完成
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
     var result = streamReader.ReadToEnd();
     var jObject = JObject.Parse(result);
     var value = (string)jObject["request_id"];
     Console.WriteLine(value);
}

答案 3 :(得分:0)

如果您确定请求ID将始终由Json对象中的第二个Attr然后您可以执行一些字符串操作 Intent intent = new Intent(MainActivity.this, NextActivity.class); intent.putExtra("dataitem", item); startActivity(intent); 将返回由逗号分割的字符串数组,现在我们知道请求ID是此数组中的第二个Eelment所以adb exec-out screencap -p > test.png && dos2unix.exe -f test.png 应该返回以下字符串string.Split(',')

如果U链另一个分裂但是这次与冒号并得到了输出数组的第二个成员它将是Id值string.Split(',')[1]

如果您不想要引用的引号"request_id":"b1c8ba46db3ffa807ea0f4e9bf9619ca"

所以你的代码应该是  string.Split(':')[1]

你可以从第一次分裂结肠,但我想解释更多

如果您不喜欢可以使用NewtonSoft.Json包将Json对象反序列化为以前创建的R