json은 ajax에서 일반적으로 사용되는 데이터 유형이며 자주 사용됩니다. 하지만 필드에 개행 문자가 나타나면 어떻게 해야 할까요?
삭제하는 것은 명백히 부적절합니다. 일부 필드에는 이미 줄바꿈이 있습니다. 어떻게 제거할 수 있나요?
json 클래스 처리를 테스트했지만 아무것도 발견되지 않았습니다. 예상외로 최종 처리는 정말 간단합니다.
배경 코드는 개행 문자 rn을 다음으로 대체합니다.
\n, 프런트엔드 코드 js가 수신한 문자는 다음과 같습니다.
n
public static string ConvertFromListTojson( IList{
string[] cols = columnInfos.Split(new char[]{','},StringSplitOptions.RemoveEmptyEntries)
StringBuilder sb = new StringBuilder(300);
sb.Append("{"total":");
sb.Append(total)
sb.Append(","rows":") ;
sb.Append("[");
foreach(목록의 T t)
{
sb.Append("{")
foreach(열의 문자열 열)
{
문자열 이름 = ""{0}":"{1}",";
문자열 값 = getValue(t, col)
value = value.Replace(" 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("},"); list.Count > 0)
{
int length2 = sb.Length;
sb.Remove(length2 - 1, 1)
sb.Append(" ]") ;
sb.Append("}");
return sb.ToString();
}
private static string getValue(T t, string pname) 여기서 T: class
{
유형 유형 = t.GetType();
PropertyInfo pinfo = type.GetProperty(pname)
if (pinfo != null)
{
객체 v = pinfo.GetValue (t, null);
return v != null ? v.ToString() : "";
}
else
{
throw new Exception("속성은 존재" pname) ;
}
}