2011-09-04 40 views
5

Tôi đang sử dụng giải pháp JSONPEncoderFactory, JSONPBehavior để bật JSONP trong WCF. Đó là tất cả tốt, tất cả được thiết lập và làm việc tốt, dịch vụ của tôi trả về dữ liệu chính xác, không có vấn đề ở đó.Chuyển đổi các biến JSON thành chữ thường trong C#

Tuy nhiên, tôi cần có khả năng ép tên biến JSON thành chữ thường do cách chúng được sử dụng trong JS, và đây là điều tôi chưa thể đoán ra.

Dưới đây là một ví dụ về sản lượng dịch vụ của tôi (tên và giá trị biến đã được thay đổi các yếu tố lành tính trong ví dụ này)

{"Animals":["dog","cat","mouse"],"Owner":"Greg","Permanent":"y","ID":1,"DaysToStay":"1"} 

Khá đơn giản phải không? Tôi muốn "Động vật" trở thành "động vật", v.v ...

Tôi có cần sử dụng trình phân tích cú pháp json cho việc này hay chỉ đủ để sử dụng cụm từ thông dụng? Tôi sẽ biết ơn nếu ai đó có thể cho tôi biết họ đã làm điều này như thế nào trước đây.

Cảm ơn!

+2

Bạn có đang sử dụng serialization DataContract không? Nếu vậy, bạn có thể trang trí tài sản của bạn với [DataMember ("động vật")], vv –

+0

Nếu bạn đang tạo ra điều này trong C#, bạn có thể sử dụng '.ToLower()' trên chuỗi. – ChrisF

Trả lời

2

Bạn có thể sử dụng chức năng này trên JavaScript:

FN = function (obj) 
{ 
    var ret = null; 
    if (typeof(obj) == "string" || typeof(obj) == "number") 
     return obj; 
    else if (obj.push) 
     ret = []; 
    else 
     ret = {}; 

    for (var key in obj) 
     ret[String(key).toLowerCase()] = FN(obj[key]); 
    return ret; 
}; 

EDIT: Deserialize một chuỗi json trong một từ điển với C#:

using System.Web.Script.Serialization; 
var serializer = new JavaScriptSerializer(); 
var dic = serializer.Deserialize<Dictionary<string,dynamic>>(yourJSONString); 

Các lĩnh vực phức tạp sẽ được deserialized vào từ điển. Vì vậy, bạn sẽ ned một chức năng đệ quy để kiểm tra dic matherialized.

+0

Cảm ơn bạn đã phản hồi, nhưng điều này trông giống như một hàm JavaScript. Tôi đang thực sự tìm kiếm một cách để làm điều này trong ASP.NET ngay trước khi dòng được trả về từ dịch vụ dưới dạng JSON. – sidogg

+0

Trong C# bạn có thể desserialize chuỗi json của bạn trong một từ điển. Lặp lại nó và sau đó, xây dựng một từ điển mới với các phím của bạn trong trường hợp thấp hơn. –

Các vấn đề liên quan