繁体   English   中英

如何从 dotnet core 5 中的 POSTGRESQL(npgsql) 表中获取 JSON ARRAY 值

[英]How can i get JSON ARRAY value from POSTGRESQL(npgsql) table in dotnet core 5

我正在使用带有 PostgreSQL 的 dotnet core 5 我想从 json 数组中获取数据以列出。 如何实现它,我尝试了一些在网上发现的方法,不幸的是没有任何效果

请看看我的代码和表格

我的桌子

CREATE TABLE settings.tbl_settings (
        pk_settings_id BIGSERIAL PRIMARY KEY,

                vhr_settings_sys_name VARCHAR(250) NOT NULL,
        vhr_label VARCHAR(250) NOT NULL,
        vhr_value VARCHAR(500) NOT NULL,
        arj_select_items JSON ARRAY,
        txt_remarks TEXT DEFAULT ''
        
);

我尝试在 C#

foreach (DataRow objRecord in objDataSet.Tables[0].Rows)
{
     mdlSettings.lstSelectItems = JObject.Parse(objRecord["arj_select_items"].ToString());

     or

    mdlSettings.lstSelectItems = (DBNull.Value != objRecord["arj_select_items"]) ? JsonSerializer.Deserialize<List<MdlSettingsValueOptions>>(objRecord["arj_select_items"].ToString()) : mdlSettings.lstSelectItems;

    or

    mdlSettings.lstSelectItems = (DBNull.Value != objRecord["arj_select_items"]) ? JsonConvert.DeserializeObject<List<MdlSettingsValueOptions>>(objRecord["arj_select_items"].ToString()) : mdlSettings.lstSelectItems;



}

错误

Unexpected character encountered while parsing value: S. Path '', line 0, position 0.

我收到这些错误

我也试过这些

var a = objRecord["arj_select_items"].ToString();

得到这些错误

System.String[]

objRecord["arj_select_items"] 不是 json,它是一个字符串数组。 因此,您应该反序列化数组的每个元素:

foreach (DataRow objRecord in objDataSet.Tables[0].Rows)
{
    mdlSettings.lstSelectItems = ((string[])objRecord["arj_select_items"])
        .Select(item => JsonSerializer.Deserialize<MdlSettingsValueOptions>(item));
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM