Foxtable(狐表)用户栏目专家坐堂 → 表生成json后如何移除0值


  共有685人关注过本帖树形打印复制链接

主题:表生成json后如何移除0值

帅哥哟,离线,有人找我吗?
chen_sheng
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:691 积分:6079 威望:0 精华:0 注册:2018/5/10 9:05:00
表生成json后如何移除0值  发帖心情 Post By:2024/1/8 16:32:00 [只看该作者]

           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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106680 积分:542589 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/1/8 16:41:00 [只看该作者]

dt.ReplaceFor("冲孔模具号1", nothing, "冲孔模具号1= 0")

 回到顶部
帅哥哟,离线,有人找我吗?
chen_sheng
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:691 积分:6079 威望:0 精华:0 注册:2018/5/10 9:05:00
  发帖心情 Post By: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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106680 积分:542589 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/1/8 16:57:00 [只看该作者]

那就是JsonConvert.SerializeObject自己的问题了,和表格没有关系

 回到顶部
帅哥哟,离线,有人找我吗?
chen_sheng
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:691 积分:6079 威望:0 精华:0 注册:2018/5/10 9:05:00
  发帖心情 Post By: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

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106680 积分:542589 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/1/8 20:23:00 [只看该作者]

大概

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

 回到顶部