2016-08-23 10 views
1

シリアル化されたjsonデータをすべてのプロパティの大文字ではなく、camelCaseデータに変換するにはどうすればよいですか?ここでの私の見解ではJsonデータをクライアント側でcamelCaseに1回設定する方法

私がどのようにJSON

でのC#を回し
team = @Html.Raw(Json.Encode(Model.Employees)); 

ここではデータです:

team = [ 
    { 
     "UserId": "902c2fe0-fcdf-4ed8-9591-5d8e01300cda", 
     "UserName": "buderbits", 
     "ID": 719, 
     "Email": "[email protected]", 
     "FName": "Builder", 
     "LName": "Bits", 
     "Title": "Glaizer", 
     "Zip": "10027", 
     "Phone": "456-768-9987", 
     "AddressLine": "124 street st.", 
     "City": "Nyc", 
     "StateCD": "NY", 
     "Avatar": "https://stackoverflow.com/users/RFyEQxDCpEavRfgDA028/qvzlezay.u1l.png", 
     "RowNum": 3, 
     "Total": 4, 
     "IsDirty": false, 
     "IsFlaggedForDelete": false, 
     "SortOrder": 0 
    }, 
    { 
     "UserId": "a9cec535-ac48-4197-b8a0-87702cb14e52", 
     "UserName": "stdard", 
     "ID": 717, 
     "Email": "[email protected]", 
     "FName": "Erik", 
     "LName": "Little", 
     "Title": "Developer", 
     "Zip": "75040", 
     "Phone": "123-456-7890", 
     "AddressLine": "123 Test Street", 
     "City": "Garland", 
     "StateCD": "TX", 
     "Avatar": "https://stackoverflow.com/users/CZmP9uvdTCg8CdEhOAX0/kcm1yg2o.spn.gif", 
     "RowNum": 1, 
     "Total": 4, 
     "IsDirty": false, 
     "IsFlaggedForDelete": false, 
     "SortOrder": 0 
    }, 
    { 
     "UserId": "1a4ef17a-9cd8-42e4-b172-3071e29a222a", 
     "UserName": "teammber1", 
     "ID": 2744, 
     "Email": "[email protected]", 
     "FName": "Derick", 
     "LName": "Mavrick", 
     "Title": "Drafting", 
     "Zip": "77702", 
     "Phone": "111-111-1111", 
     "AddressLine": "123 Teammember ST", 
     "City": "Beaumont", 
     "StateCD": "TX", 
     "Avatar": "https://stackoverflow.com/users/rPF9z0a7yLJpp4e1Zb15/os1cmk0r.kkg.jpg", 
     "RowNum": 4, 
     "Total": 4, 
     "IsDirty": false, 
     "IsFlaggedForDelete": false, 
     "SortOrder": 0 
    }, 
    { 
     "UserId": "17fab37f-d978-441c-a30d-8c08a7e6ce9b", 
     "UserName": "stoontsoftware", 
     "ID": 718, 
     "Email": "[email protected]", 
     "FName": "Mark", 
     "LName": "Taylor", 
     "Title": "Hosting", 
     "Zip": "75070", 
     "Phone": "345-432-1153", 
     "AddressLine": "123 street dr", 
     "City": "McKinney", 
     "StateCD": "TX", 
     "Avatar": "https://stackoverflow.com/users/y5TPPr0HR1GQLxkEhDuj/3bmwy0sk.qoi.png", 
     "RowNum": 2, 
     "Total": 4, 
     "IsDirty": false, 
     "IsFlaggedForDelete": false, 
     "SortOrder": 0 
    } 
]; 
"このすべては道によってテストデータです"

答えて

3

あなたがオブジェクトをシリアライズするときにフォーマッタを指定することができますNewtonsoftのJSONシリアライザ(Json.net)を使用することができます。

var d = @Html.Raw(Newtonsoft.Json.JsonConvert.SerializeObject(Model.Employees, 
     new JsonSerializerSettings 
     { 
      ContractResolver = new CamelCasePropertyNamesContractResolver() 
     })); 
console.log(d); 

これは、あなたのシリアル化によって作成されたあなたのjsオブジェクト/アレイの小文字のプロパティ名を与えます。

+1

ありがとうございました! –

0

最初のクエリをキャラルケースのフィールドを持つ動的オブジェクトまたはビューモデルにキャスティングすることで、キャラセルケースにクライアントを送信する前にフィールドを取得できます。

var model=db.Records.ToList(); 

あなたの出力を生成し、その後であるためにあなたのクエリを変更:元のクエリは、たとえば、

var model=db.Records.Select(r=> 
    new {firstName=r.FirstName,lastName=LastName, etc...).ToList(); 

真にクライアント側でそれを100%を行うには、あなたを再構築する必要があります各オブジェクトを正しい名前のオブジェクトに置き換えるjavascriptメソッドを使用して、テーブルオブジェクトを作成します。

function NewObject(input){ 
    input=input||{}; 
    this.firstName=input.FirstName||''; 
    this.lastName=input.LastName||''; 
    ...etc. 
} 

var [email protected]; //your Json data as an object 
for(var i=0;i<model.length;i++){ 
    model[i]=new NewObject(model[i]); 
} 
関連する問題