私は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'在庫ではありません。そうですか? –
はい。 JSON.NETへの参照は既にプロジェクトに含まれています。このシナリオではまだ(まだ)それを利用していません。 –
これは2,3日前のこの質問に似ています:http://stackoverflow.com/questions/9247478/pascal-case-dynamic-properties-with-json-net/9247705#9247705 –