2015-06-11 88 views
0

參數我有這個JSON字符串看起來像:轉換JSON字符串來獲得.NET

string jsonString = "[ {"id": "1"}, {"id": "2", "category": "toys"} ]"; 

的報價已經在字符串中逃脫。我想找到一個很好的方法來創建一個鏈接出JSON看起來類似於這個通過將其轉換爲GET參數。我只能真正看到適用於平面結構的解決方案。

編輯:我也需要TP能夠轉換回JSON字符串。

+0

你的jsonString代表什麼對象?你是否在需要三個查詢字符串參數的服務器上進行一些複雜的GET操作? –

+0

我想轉換這個字符串(這是一個JSON cookie我url解碼),我想附加到我正在做的鏈接的結尾,所以我可以給它發電子郵件。然後,當用戶點擊鏈接時,我將轉換回json並處理數據。 –

回答

0

我可以回答我的問題,這不是解決問題的好辦法。 json字符串可能非常大,如果服務器上超過2048個字符,可能會被截斷或拒絕。

最好的方法是創建一個jsonHashTable.json,它將存儲您試圖發送的密鑰的哈希以及您作爲值發送的內容。然後通過電子郵件散列/密鑰。讓控制器接收哈希使用表來查找需要什麼數據。

1

最初的回答

You could do something like this把它變成一個鏈接:

using System; 
using Newtonsoft.Json; 
using Newtonsoft.Json.Linq; 
using System.Text; 

public class Program 
{ 
    public static void Main() 
    {  
     dynamic obj = JArray.Parse(jsonString); 

     var builder = new StringBuilder(); 
     builder.Append("?id0=" + obj[0].id); 
     builder.Append("&id1=" + obj[1].id); 
     builder.Append("&category1=" +obj[1].category); 

     Console.WriteLine("http://www.something.com" + builder.ToString()); 
    } 

    public static string jsonString = @"[ {""id"": ""1""}, {""id"": ""2"", ""category"": ""toys""} ]"; 
} 

輸出:

http://www.something.com?id0=1&id1=2&category1=toys

更通用的跟進基於您的評論答案

here is something more generic:

using System; 
using Newtonsoft.Json; 
using Newtonsoft.Json.Linq; 
using System.Text; 
using System.Collections.Generic; 

public class Program 
{ 
    public static void Main() 
    { 
     JArray array = JArray.Parse(jsonString); 

     var builder = new StringBuilder(); 

     for (var i = 0; i < array.Count; ++i) 
     {   
      JToken obj = array[i]; 
      foreach (JProperty prop in obj) 
      { 
       var prefix = i == 0 ? "?" : "&"; 
       builder.AppendFormat("{0}{1}{2}={3}", prefix, prop.Name, i, prop.Value); 
      } 
     } 

     Console.WriteLine("http://www.something.com" + builder.ToString()); 
    } 

    public static string jsonString = @"[ {""id"": ""1""}, {""id"": ""2"", ""category"": ""toys""} ]"; 
} 

輸出:

http://www.something.com?id0=1&id1=2&category1=toys

+0

有沒有一種解決方案可以將內容結構轉換爲get參數? –

+0

@SatbirKira是的。有一個解決方案。我在回答中添加了一些內容,儘管它可能不像您需要的那樣通用。這真的取決於你需要處理的情況。它需要處理每個可能的JSON結構嗎?即嵌套在嵌套在數組中的對象中的數組等。 –

+0

我認爲這很好。我只需要能夠現在從字符串轉換回json字符串。 –