2016-09-15 41 views
0

我的意思是,這是一張我的代碼:直接使用流的分析,而不是保存文件

// Create the web request (posts/1) 
HttpWebRequest request = WebRequest.Create("https://jsonplaceholder.typicode.com/posts/1") as HttpWebRequest; 
// Get response 
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse) 
{ 
    // Get the response stream 
    StreamReader reader = new StreamReader(response.GetResponseStream()); 

    { 
     string myString = reader.ReadToEnd(); 
     System.IO.File.WriteAllText(@"C:\Users\admin\Documents\Visual Studio 2015\Projects\WriteText.json", myString); 
    } 


    // JSON deserialize from a file 
    String JSONstring = File.ReadAllText(@"C:\Users\admin\Documents\Visual Studio 2015\Projects\WriteText.json"); 
    // List<PARSE> pList = JsonConvert.DeserializeObject<List<PARSE>>(JSONstring); 
    PARSE pList = JsonConvert.DeserializeObject<PARSE>(JSONstring); 

我如何做這件事情,但不保存數據流,並再次把它載入到一個字符串。我想直接使用我的流到一個字符串'JSONstring',然後解析它。

回答

1

你的代碼中包含的解決方案

// Create the web request (posts/1) 
HttpWebRequest request = WebRequest.Create("https://jsonplaceholder.typicode.com/posts/1") as HttpWebRequest; 
// Get response 
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse) 
{ 
    // Get the response stream 
    StreamReader reader = new StreamReader(response.GetResponseStream()); 

    { 
     //string myString = reader.ReadToEnd(); 
     //System.IO.File.WriteAllText(@"C:\Users\admin\Documents\Visual Studio 2015\Projects\WriteText.json", myString); 
    } 


    // JSON deserialize from a file 
    // String JSONstring = File.ReadAllText(@"C:\Users\admin\Documents\Visual Studio 2015\Projects\WriteText.json"); 
    // List<PARSE> pList = JsonConvert.DeserializeObject<List<PARSE>>(JSONstring); 
    PARSE pList = JsonConvert.DeserializeObject<PARSE>(reader.ReadToEnd()); 

    reader.close(); 
1

下面是如何將HTTP流解析爲Json(沒有錯誤處理)的示例。玩它,讓我們知道你是否碰到任何具體的事情。在這個代碼中。 API_Json與反序列化類的課,我反序列化API_Json.RootObject:

public async Task<API_Json.RootObject> walMart_Lookup(string url) 
    { 
     lookupIsWorking = true; 
     HttpClientHandler handler = new HttpClientHandler() 
     { 
      AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate 
     }; 
     using (HttpClient http = new HttpClient(handler)) 
     { 

      http.DefaultRequestHeaders.AcceptEncoding.Add(new System.Net.Http.Headers.StringWithQualityHeaderValue("gzip")); 
      http.Timeout = TimeSpan.FromMilliseconds(Timeout.Infinite); 
      url = String.Format(url); 
      using (var response = await http.GetAsync(url, HttpCompletionOption.ResponseHeadersRead)) 
      { 
       Console.WriteLine(response); 
       var serializer = new JsonSerializer(); 

       using (StreamReader sr = new StreamReader(await response.Content.ReadAsStreamAsync())) 
       { 
        using (var jsonTextReader = new JsonTextReader(sr)) 
        { 
         var root = serializer.Deserialize<API_Json.RootObject>(jsonTextReader); 
         lookupIsWorking = false; 
         return root; 

        } 
       } 

       //var obj = (API_Json_Special_Feeds.RootObject)serializer.Deserialize(sr, typeof(API_Json_Special_Feeds.RootObject)); 
       //return obj; 
      } 

     } 


    } 
相關問題