2014-04-04 19 views
52

Tôi có Chuỗi này được lưu trữ trong cơ sở dữ liệu của tôi:Chuyển đổi JSON String để JSON Object C#

str = "{ "context_name": { "lower_bound": "value", "upper_bound": "value", "values": [ "value1", "valueN" ] } }" 

chuỗi này đã được định dạng JSON nhưng tôi muốn chuyển đổi nó thành một JObject hoặc JSON Object.

JObject json = new JObject(); 

Tôi đã thử các json = (JObject)str; cast nhưng nó đã không làm việc nên làm thế nào tôi có thể làm điều đó?

Trả lời

113

JObject xác định phương pháp Parse cho việc này:

JObject json = JObject.Parse(str); 

Bạn có thể muốn tham khảo Json.NET documentation.

+0

chí này chuyển đổi thành {string}, sẽ thêm dấu ngoặc nhọn thêm vào chuỗi của bạn. –

13

này hoạt động

string str = "{ 'context_name': { 'lower_bound': 'value', 'pper_bound': 'value', 'values': [ 'value1', 'valueN' ] } }"; 
    JavaScriptSerializer j = new JavaScriptSerializer(); 
    object a = j.Deserialize(str, typeof(object)); 
+0

Err - Không có quá tải cho phương pháp 'Deserialize' mất 2 đối số ... –

7

có một cách thú vị để đạt được một mục tiêu đó là để có một gõ mạnh lớp cơ sở trên json với một công cụ rất mạnh mẽ mà tôi sử dụng cách đây vài ngày cho lần đầu tiên dịch Tradedoubler json dẫn đến các lớp học

Là một công cụ đơn giản: sao chép dán nguồn json của bạn và trong vài giây you will have a strongly typed class json oriented. Theo cách này, bạn sẽ sử dụng các lớp này mạnh hơn và dễ sử dụng hơn.

Tôi hy vọng rằng có thể giúp bạn

+0

Chỉ cần những gì tôi cần! vì vậy tôi không cần phải xác định một cấu trúc lớp phức tạp từ một cái gì đó được tạo ra trong javascript – NicolasZ

+0

trong khi điều này không trả lời câu hỏi. đây là một công cụ tiết kiệm thời gian. –

+0

Cảm ơn rất nhiều :) Tôi rất vui vì phản hồi này hữu ích – makemoney2010

7

nếu bạn không muốn hoặc cần một đối tượng thử gõ:

using Newtonsoft.Json; 
// ... 
dynamic json = JsonConvert.DeserializeObject(str); 

hoặc thử cho một đối tượng thử gõ:

Foo json = JsonConvert.DeserializeObject<Foo>(str) 
Các vấn đề liên quan