.net SSRS报表生成器如何从数据集字段解析JSON?

.net SSRS报表生成器如何从数据集字段解析JSON?,.net,json,reporting-services,json.net,ssrs-2012,.net,Json,Reporting Services,Json.net,Ssrs 2012,我正在Microsoft SQL Server Reporting Services 11.0.2100.60版上运行的Microsoft SQL Server report Builder 3.0中创建报表 我想解析数据集中某些字段中存储的JSON值。下面是我的报告预览,其中显示了原始JSON值 我期望的表达式(虽然没有添加)如下所示 =Newtonsoft.Json.Linq.JArray.Parse(Fields!MyFieldName.Value).ToString() 因为我需要从

我正在Microsoft SQL Server Reporting Services 11.0.2100.60版上运行的Microsoft SQL Server report Builder 3.0中创建报表

我想解析数据集中某些字段中存储的JSON值。下面是我的报告预览,其中显示了原始JSON值

我期望的表达式(虽然没有添加)如下所示

=Newtonsoft.Json.Linq.JArray.Parse(Fields!MyFieldName.Value).ToString()
因为我需要从任何表达式调用,所以我必须。参考:

因此,在我的报告属性中,添加了对Json.net(Newtonsoft.Json.4.5.6)程序集的引用,如下所述

程序集的路径是
C:\ProgramFiles(x86)\Microsoft ASP.NET\ASP.NET MVC 4\Packages\Newtonsoft.Json.4.5.6\lib\net40\Newtonsoft.Json.dll

我还尝试将程序集添加到
C:\Program Files(x86)\Microsoft Visual Studio 11.0\Common7\IDE\PrivateSassemblies\
以及
C:\Program Files\Microsoft SQL Server\MSRS10\U 50.SQL2008\Reporting Services\ReportServer\bin\
并更改对路径的引用,但没有成功

还提到,

到目前为止,我刚刚添加了assembly引用,没有任何更改。但是,一旦切换到预览报告,错误将显示如下所述:

是因为程序集中缺少权限属性
AllowPartiallyTrustedCallers()
?根据一个没有解决我的问题的参考,因为在我的例子中,程序集不是定制的,也不能找到另一个问题和教程

我做错了什么?或者在SSRS报告中是否有解析JSON的工作示例


任何帮助都会大有帮助。

我可能在这里过于简化了,但程序集ddl是否位于客户端或报表服务器上,正如我过去发现的那样,除非客户端和服务器上都有程序集,否则我会收到奇怪的错误消息。另外,在将ddl添加到bin目录后,我的目录如下(C:\Program Files\Microsoft SQL Server\MSRS12.MSSQLSERVER\Reporting Services\ReportServer\bin)报表服务器服务需要重述以获取程序集

我可能过于简化了,但程序集ddl位于客户端还是报表服务器或两者都位于客户端上,正如我在过去发现的,除非我在客户端和服务器上都有程序集,否则我会收到奇怪的错误消息。另外,在将ddl添加到bin目录后,我的目录如下(C:\Program Files\Microsoft SQL Server\MSRS12.MSSQLSERVER\Reporting Services\ReportServer\bin),需要重述报表服务器服务以拾取程序集

它可以找到的错误状态
版本4.5.0.0
;您显示的图像是针对
版本4.5.6
的,除非明确指定,否则这些图像不可互换

所以你有两个选择:

  • 删除对NewtonSoft.Json.dll的当前引用;从该DLL的所有版本中清除文件夹,然后重新开始

  • 在机器级别指定一个
    assemblyBinding
    -
    machine.config
    。这是你怎么做的。关注第一个例子。
    bindingRedirect
    就是您要寻找的


  • 错误说明它可以找到
    版本4.5.0.0
    ;您显示的图像是针对
    版本4.5.6
    的,除非明确指定,否则这些图像不可互换

    所以你有两个选择:

  • 删除对NewtonSoft.Json.dll的当前引用;从该DLL的所有版本中清除文件夹,然后重新开始

  • 在机器级别指定一个
    assemblyBinding
    -
    machine.config
    。这是你怎么做的。关注第一个例子。
    bindingRedirect
    就是您要寻找的


  • 有人解决了这个问题吗?我也遇到过类似的问题。有人解决了这个问题吗?我也遇到过类似的问题
    System.Web.Services.Protocols.SoapException: Error while loading code module: ‘Newtonsoft.Json, Version=4.5.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed’. Details: Could not load file or assembly 'Newtonsoft.Json, Version=4.5.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' or one of its dependencies. The system cannot find the file specified.
       at Microsoft.ReportingServices.Library.ReportingService2010Impl.CreateReportEditSession(String Report, String Parent, Byte[] Definition, String& EditSessionID, Warning[]& Warnings)
       at Microsoft.ReportingServices.WebServer.ReportingService2010.CreateReportEditSession(String Report, String Parent, Byte[] Definition, String& EditSessionID, Warning[]& Warnings)