You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在无数据库/服务器的情况下从C#调用T-SQL的OPENJSON函数?

直接结论

不行,OPENJSON是SQL Server专属的T-SQL函数,它的运行完全依赖SQL Server的数据库引擎,没办法脱离实际的数据库或服务器直接从C#调用。

替代方案:用.NET原生JSON处理库实现类似效果

既然你的需求是解析、处理JSON数据,完全可以用.NET自带的JSON处理库来实现和OPENJSON类似的功能,还不用依赖SQL Server,效率也更高。

1. 使用System.Text.Json(.NET Core/.NET 5+内置)

这是微软官方主推的JSON库,无需额外安装包,直接用:

using System;
using System.Text.Json;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        // 模拟OPENJSON要处理的JSON字符串
        string jsonString = @"[
            {""Id"": 1, ""Name"": ""Alice""},
            {""Id"": 2, ""Name"": ""Bob""}
        ]";

        // 解析为强类型对象列表,类似OPENJSON返回的行数据
        var users = JsonSerializer.Deserialize<List<User>>(jsonString);
        
        foreach (var user in users)
        {
            Console.WriteLine($"Id: {user.Id}, Name: {user.Name}");
        }
    }
}

public class User
{
    public int Id { get; set; }
    public string Name { get; set; }
}

2. 使用Newtonsoft.Json(第三方库,兼容性更广)

如果是.NET Framework项目,或者需要更灵活的JSON处理,推荐用Newtonsoft.Json(通过NuGet包安装即可):

using System;
using Newtonsoft.Json;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        string jsonString = @"[
            {""Id"": 1, ""Name"": ""Alice""},
            {""Id"": 2, ""Name"": ""Bob""}
        ]";

        var users = JsonConvert.DeserializeObject<List<User>>(jsonString);
        
        foreach (var user in users)
        {
            Console.WriteLine($"Id: {user.Id}, Name: {user.Name}");
        }
    }
}

public class User
{
    public int Id { get; set; }
    public string Name { get; set; }
}

如果需要处理动态JSON(不用提前定义实体类),也可以用JArray/JObject实现类似OPENJSON的动态解析:

using Newtonsoft.Json.Linq;

// 动态解析示例
JArray jsonArray = JArray.Parse(jsonString);
foreach (JObject item in jsonArray)
{
    int id = (int)item["Id"];
    string name = (string)item["Name"];
    Console.WriteLine($"Id: {id}, Name: {name}");
}

内容的提问来源于stack exchange,提问作者Reez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 17:12:28