以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  表生成json后如何移除0值  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=189971)

--  作者:chen_sheng
--  发布时间:2024/1/8 16:32:00
--  表生成json后如何移除0值
           s = JsonConvert.SerializeObject(dtCopy)
            e.WriteString(s) \'生成网页
            \' Return ""  \'必须的
Else \'其它页面从Cookie提取登录信息进行验证
            s = "杯具!获取数据失败!"
        e.WriteString(s) \'生成网页
        End If
    End If
Else \'其它页面从Cookie提取登录信息进行验证
     s = "杯具!获取数据失败!"
e.WriteString(s) \'生成网页
End If
e.Handled = True  
[此贴子已经被作者于2024/1/9 18:13:41编辑过]

--  作者:有点蓝
--  发布时间:2024/1/8 16:41:00
--  
dt.ReplaceFor("冲孔模具号1", nothing, "冲孔模具号1= 0")
--  作者:chen_sheng
--  发布时间:2024/1/8 16:50:00
--  
dt.ReplaceFor("冲孔模具号1", nothing, "冲孔模具号1= 0")
这样处理达不到工控需要的效果,生成的json内不含  位1-6  数1-6 为0的 列名与0数据

此主题相关图片如下:jsonx.jpg
按此在新窗口浏览图片

[此贴子已经被作者于2024/1/8 16:52:05编辑过]

--  作者:有点蓝
--  发布时间:2024/1/8 16:57:00
--  
那就是JsonConvert.SerializeObject自己的问题了,和表格没有关系
--  作者:chen_sheng
--  发布时间:2024/1/8 19:45:00
--  
JsonConvert空值的处理
这里的空值指的是引用类型为NULL时,Json.Net如何处理.通过设置jSetting.NullValueHandling的值来确定,该值为枚举类型.
NullValueHandling.Ignore
忽略为NULL的值
NullValueHandling.Include
默认值,包括为NULL的值
 
实例:
            Staff jack = new Staff { Name = "Jack", Age = 31, Gender = "Male", DepartmentName = "Personnel Department", Leader = null };           
var jSetting = new JsonSerializerSettings();           
jSetting.NullValueHandling = NullValueHandling.Ignore;           
string json = JsonConvert.SerializeObject(jack,jSetting);           
Console.WriteLine(json);
狐表代码该咋处理呢
Dim dt As DataTable
Dim cmd As New SQLCommand
cmd.CommandText = "S elect * from {表A} where 单号 = \'A001\'"
dt = cmd.ExecuteReader()
If dt.DataRows.Count > 0  Then
    Dim dtCopy As System.Data.DataTable = dt.BaseTable.Copy
    dtCopy.Columns.Remove("System_Sort_Temporary")
    dtCopy.Columns.Remove("System_Filter_Temporary")
    dtCopy.Columns.Remove("System_Filter_Unique")
   Dim s As String = JsonConvert.SerializeObject(dtCopy)
    \'e.WriteString(s) \'生成网页
       Output.Show(s.ToString)
End If

--  作者:有点蓝
--  发布时间:2024/1/8 20:23:00
--  
大概

dim jSetting as new JsonSerializerSettings
jSetting.NullValueHandling = NullValueHandling.Ignore
Dim s As String = JsonConvert.SerializeObject(dtCopy,jSetting)