json est un type de données couramment utilisé en ajax et est souvent utilisé. Mais que faire si un caractère de nouvelle ligne apparaît dans le champ ?
Il est évidemment inapproprié de le supprimer. Certains champs comportent déjà des sauts de ligne, comment puis-je les supprimer ?
J'ai testé le traitement de la classe json et je n'ai rien trouvé. De manière inattendue, le traitement final est vraiment si simple :
Le code d'arrière-plan remplace le caractère de nouvelle ligne rn par
\n, le caractère reçu par le code frontal js est
n
chaîne statique publique ConvertFromListTojson( IList{
string[] cols = columnInfos.Split(new char[]{','},StringSplitOptions.RemoveEmptyEntries
StringBuilder sb = new StringBuilder(300);
sb.Append("{"total":");
sb.Append(total); ;
sb.Append("[");
foreach (T t dans la liste)
{
sb.Append("{");
foreach (string col in cols)
{
string name = ""{0}":"{1}",";
string value = getValue(t, col); rn", "\r\n");
sb.Append(string.Format(name, col, value));
}
if (cols.Length > 0)
{
int length = sb.Length;
sb.Remove(length - 1, 1);
}
sb.Append("},");
}
if ( list.Count > 0)
{
int length2 = sb.Length
sb.Remove(length2 - 1, 1);
sb.Append(" ]") ;
sb.Append("}");
return sb.ToString();
}
chaîne statique privée getValue(T t, string pname) où T : class
{
Type type = t.GetType();
PropertyInfo pinfo = type.GetProperty(pname);
if (pinfo != null)
{
object v = pinfo.GetValue (t, null);
return v != null ? v.ToString() : "";
else
{
lance une nouvelle exception("L'attribut ne existe" pname) ;
}
}