0
가 나는 DataSet
을 복용하고 JSON.NETJSON.NET가 특정의 키가
내가 직면 해요 문제는 필드 중 하나가 부동 소수점 값으로 저장되어 있다는 것입니다 통해 JSON으로 변환하고있어 정수로 변환하지만, 대신 정수로 직렬화해야합니다. 나는 변경하고 싶지 않다 모두 정수로 부동 소수점, 단지 하나의 필드.
누구나 그 예가 있습니까?
가 나는 DataSet
을 복용하고 JSON.NETJSON.NET가 특정의 키가
내가 직면 해요 문제는 필드 중 하나가 부동 소수점 값으로 저장되어 있다는 것입니다 통해 JSON으로 변환하고있어 정수로 변환하지만, 대신 정수로 직렬화해야합니다. 나는 변경하고 싶지 않다 모두 정수로 부동 소수점, 단지 하나의 필드.
누구나 그 예가 있습니까?
dbTable의 데이터로 ds가 채워 졌다고합시다. 우리는 두 번에 자신의에서 필드 dbTableField 값 유형을 변경해야합니다
class DataSetFieldTypeConverter : JsonConverter
{
private Type convertTo;
private string tableName;
private string fieldName;
public DataSetFieldTypeConverter(Type convertTo, string tableName, string fieldName)
{
this.convertTo = convertTo;
this.tableName = tableName;
this.fieldName = fieldName;
}
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
JToken t = JToken.FromObject(value);
if (t.Type != JTokenType.Object)
{
t.WriteTo(writer);
}
else
{
JObject jsonObj = t as JObject;
if (jsonObj != null && jsonObj[tableName] != null && jsonObj[tableName][0][fieldName] != null)
{
var propVal= jsonObj[tableName][0][fieldName].Value<string>();
//Write your own covert logic here
if (convertTo == typeof(int))
{
int propValInt;
if (int.TryParse(propVal, out propValInt))
{
jsonObj[tableName][0][fieldName] = propValInt;
}
}
if (convertTo == typeof(double))
{
double propValInt;
if (double.TryParse(propVal, out propValInt))
{
jsonObj[tableName][0][fieldName] = propValInt;
}
}
jsonObj.WriteTo(writer);
}
}
}
이 링크가 유용 할 것이다 : https://www.newtonsoft.com/json/help/html/CustomJsonConverter.htm
가 어떻게 데이터 집합으로 변환 할 아래
가 DataSetFieldTypeConverter 클래스입니다 JSON에? 귀하의 코드와 몇 가지 샘플 데이터와 그 예상 결과를 공유하십시오. –