Lucian Maran

home

Afisarea in browser a unui obiect JSON: culori, indentare, grupare

16 Feb 2014

Definirea problemei

Atunci cand faci debug si lucrezi cu servicii REST simple (GET, fara autentificare) nu ai nevoie de tool-uri specializate (fiddler, postman etc). E suficient un browser, dar pt. o vizualizare optima a rezultatuilui ai nevoie de cateva ajustari:

Am modificat controller-ul "Values" dintr-un proiect WebAPI default a.i. sa returneze doua obiecte ceva mai complexe. Rezultatul in cele 3 browser-e (Chrome, FF, IE) este urmatorul:

Se observa ca rezultatul este interpretat ca un simplu text (string), fara nicio formatare. Putem face mai lizibil acest text configurand corespunzator server-ul, browser-ul sau ambele.

Solutia 1. Formatarea rezultatului prin configurarea server-ului

Ce pot suporta prin aceasta metoda:

Ce nu pot suporta - in general tot ce tine de styling:

Configurare codului (ma refer la Web API) se face adaugand in fisierul de configurare urmatoarele linii:

var jsonFormatter = config.Formatters.JsonFormatter;
var settings = jsonFormatter.SerializerSettings;
settings.Formatting = Newtonsoft.Json.Formatting.Indented; // Indenting
settings.ContractResolver = new CamelCasePropertyNamesContractResolver(); // Camel Casing

Chrome si FF vor fi happy cu aceste setari:

Din pacate, pentru IE au efect doar setarile de camelCase:

Solutia 2. Formatarea rezultatului din browser

IE

Chrome

FF

Obs:

comments powered by Disqus