如何修复不完整的MSSQL FOR JSON查询

时间:2019-07-11 11:54:59

标签: c# sql json sql-server

我正在编写一个脚本,该脚本将在一个数据库之间进行一些更改将数据从一个数据库拉到另一个数据库。双方都使用MS SQL Server,但是在SELECT查询无法返回完整的JSON字符串的地方,我遇到了一些问题。

我尝试使用许多不同的查询方法和函数,但似乎问题不在于如何查询信息,而在于脚本如何接收JSON。

这是我尝试过的最新查询,没什么花哨的,它检索信息。


var fishQuery = "SELECT [Id],[Name],[OrgNumber] FROM Camps ORDER BY [Id] OFFSET 5 ROWS FETCH NEXT 1000 ROWS ONLY FOR JSON PATH";

编辑:应该提及的是,这是我之后处理字符串的方式。

var campsInfo = fishConnection.Query<string>(fishQuery).First();
List<Camps> Camps = new List<Camps>();
Camps = (JsonConvert.DeserializeObject<List<Camps>>(campsInfo));

但是,我在Visual Studio中遇到这些错误:

Newtonsoft.Json.JsonReaderException: 'Unterminated string. Expected delimiter: ". Path '[20].Name', line 1, position 2033.'

如果我将其打印到文件或控制台中,则会显示

(A lot more valid JSON data before this...) (...) {\"Id\":\"173246A1-8069-437C-8731-05DBE69C784F\",\"Name\":\"SKANSE"

这表明我得到了无效的JSON,因为结果停止了“一半”。 我读了其中一些: How do you view ALL text from an ntext or nvarchar(max) in SSMS?

SQL Server - "for json path" statement does not return more than 2984 lines of JSON string

但是我也不希望在生产中的SQL Server上进行更改,因为我不知道自己可以修复它!

感谢您的帮助!

0 个答案:

没有答案