如果有其他类型的话,大概可以归为两类,需要加""的,和不需要加的,这里我都有处理,可以直接在对应处添加类型即可。因为我查找的数据里牵扯到了datetime,所以我将其转换成了string来处理
/// <summary>
/// DataReader转换为Json
/// </summary>
/// <param name="dataReader">DataReader对象</param>
/// <returns>Json字符串(数组)</returns>
///
public static string ToJson(SqlDataReader dataReader)
{
StringBuilder jsonString = new StringBuilder();
jsonString.Append("[");
while (dataReader.Read())
{
jsonString.Append("{");
for (int i = 0; i < dataReader.FieldCount; i++)
{
Type type = dataReader.GetFieldType(i);
string strKey = dataReader.GetName(i);
string strValue = dataReader[i].ToString();
jsonString.Append("\"" + strKey + "\":");
strValue = String.Format(strValue, type);
//datetime不能出现为空的情况,所以将其转换成字符串来进行处理。
/// <summary>
/// DataReader转换为Json
/// </summary>
/// <param name="dataReader">DataReader对象</param>
/// <returns>Json字符串(数组)</returns>
///
public static string ToJson(SqlDataReader dataReader)
{
StringBuilder jsonString = new StringBuilder();
jsonString.Append("[");
while (dataReader.Read())
{
jsonString.Append("{");
for (int i = 0; i < dataReader.FieldCount; i++)
{
Type type = dataReader.GetFieldType(i);
string strKey = dataReader.GetName(i);
string strValue = dataReader[i].ToString();
jsonString.Append("\"" + strKey + "\":");
strValue = String.Format(strValue, type);
//datetime不能出现为空的情况,所以将其转换成字符串来进行处理。
//需要加""的
if (type == typeof(string)|| type == typeof(DateTime))
{
if (i <= dataReader.FieldCount - 1)
{
jsonString.Append("\"" + strValue + "\",");
}
else
{
jsonString.Append(strValue);
}
}
if (type == typeof(string)|| type == typeof(DateTime))
{
if (i <= dataReader.FieldCount - 1)
{
jsonString.Append("\"" + strValue + "\",");
}
else
{
jsonString.Append(strValue);
}
}
//不需要加""的
else
{
else
{
if (i < =dataReader.FieldCount - 1)
{
jsonString.Append("" + strValue + ",");
}
else
{
jsonString.Append(strValue);
}
}
}
jsonString.Append("},");
}
dataReader.Close();
jsonString.Remove(jsonString.Length - 3, 3);
jsonString.Append("}");
jsonString.Append("]");
return jsonString.ToString();
}
{
jsonString.Append("" + strValue + ",");
}
else
{
jsonString.Append(strValue);
}
}
}
jsonString.Append("},");
}
dataReader.Close();
jsonString.Remove(jsonString.Length - 3, 3);
jsonString.Append("}");
jsonString.Append("]");
return jsonString.ToString();
}