Perché il seguente codice di ritorno "[]" quando deve restituire "{" id ": 1999, "title":" hithere "}Perché C# JavaScriptSerializer.Serialize tornare vuoti tra parentesi quadre
JavaScriptSerializer serializer = new JavaScriptSerializer();
StringBuilder sbJsonResults = new StringBuilder();
var result = serializer.Serialize(new dg(1999, "hithere"));
context.Response.Clear();
context.Response.ContentType = "application/json; charset=utf-8";
context.Response.Cache.SetExpires(DateTime.MinValue);
context.Response.Write(result);
PS classe dg assomiglia a questo:..
public class dg : ScheduleObserver, ILibrary, IEnumerable {
public int id;
public string title;
private List<d> dList;
...many getters and setters and some logic functions...
}
public abstract class ScheduleObserver{
public abstract void update();
}
public interface ILibrary {
List<PD> getPDs();
void setPDs(List<PD> newPDs);
int getCurrentIndex();
void addPD(PD pD);
PD getPD(int index);
}
Molte grazie
gRAZIE - RISPOSTO CON SUCCESSO - è stato l'IEnumerable che era la fonte dei miei guai per risolverlo, dg non si estende IEnumerable e tutti foreach (dg ...) i loop sono stati convertiti in loop for (int i = 0 ...).
GRAZIE MOLTO, MOLTO! JAMES ha capito perché è vuoto, Parv ha capito perché aveva parentesi quadre. Segnerebbe sia come risposta, ma può segnarne solo uno.
'dg' =' [serializable] '? –
dg ha un costruttore che corrisponde al sovraccarico nel tuo esempio e questo sovraccarico assegna correttamente i valori alle proprietà corrispondenti? – Dimitri
@Brad - Ottengo lo stesso risultato con o senza il tag [Serializable] su dg – user2282496