我想遵守JavaScript以及C#中的命名約定。當來回傳遞JSON化數據時,這會引發一些有趣的問題。當我訪問x/y座標客戶端時,我期望該屬性是小寫字母,但服務器端是大寫字母。將System.Drawing.Point轉換爲JSON。如何將'X'和'Y'轉換爲'x'和'y'?
觀察:
public class ComponentDiagramPolygon
{
public List<System.Drawing.Point> Vertices { get; set; }
public ComponentDiagramPolygon()
{
Vertices = new List<System.Drawing.Point>();
}
}
public JsonResult VerticesToJsonPolygon(int componentID)
{
PlanViewComponent planViewComponent = PlanViewServices.GetComponentsForPlanView(componentID, SessionManager.Default.User.UserName, "image/png");
ComponentDiagram componentDiagram = new ComponentDiagram();
componentDiagram.LoadComponent(planViewComponent, Guid.NewGuid());
List<ComponentDiagramPolygon> polygons = new List<ComponentDiagramPolygon>();
if (componentDiagram.ComponentVertices.Any())
{
ComponentDiagramPolygon polygon = new ComponentDiagramPolygon();
componentDiagram.ComponentVertices.ForEach(vertice => polygon.Vertices.Add(vertice));
polygons.Add(polygon);
}
return Json(polygons, JsonRequestBehavior.AllowGet);
}
我明白,如果我能夠使用C#屬性「JsonProperty」自定義命名約定。然而,據我所知,這隻適用於我所擁有的課程。
如何在傳遞迴客戶端時更改System.Drawing.Point的屬性?
如果您使用的是JsonProperty,那麼您使用的是JSON.NET,而不是股票'JavaScriptSerializer';是這樣嗎? – 2012-02-14 22:35:50
是的。對JSON.NET的引用已經包含在項目中 - 在這種情況下,我還沒有使用它(還)。 – 2012-02-14 22:38:13
這幾天前似乎類似於這個問題:http://stackoverflow.com/questions/9247478/pascal-case-dynamic-properties-with-json-net/9247705#9247705。 – 2012-02-14 22:48:36