Я стараюсь придерживаться соглашений об именах как в JavaScript, так и в C#. Это приводит к интересным вопросам при передаче JSONized данных взад и вперед. Когда я обращаюсь к клиентской стороне координаты 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 »; это так? –
Да. Ссылка на JSON.NET уже включена в проект - я просто не использовал его (пока) в этом сценарии. –
Это похоже на этот вопрос пару дней назад: http://stackoverflow.com/questions/9247478/pascal-case-dynamic-properties-with-json-net/9247705#9247705. –