相关疑难解决方法(0)

JSON中的多行字符串

我正在用JSON格式编写一些数据文件,并希望将一些非常长的字符串值分成多行.使用python的JSON模块我得到了很多错误,无论是使用\还是\n作为转义.

是否可以在JSON中使用多行字符串?这主要是为了视觉上的舒适,所以我想我可以在我的编辑器中翻开自动换行,但我只是有点好奇......

string syntax json multiline

584
推荐指数
11
解决办法
56万
查看次数

如何使用JavaScript转义包含换行符的JSON字符串?

我必须形成一个JSON字符串,其中一个值具有换行符.这必须转义然后使用AJAX调用发布.任何人都可以建议使用JavaScript来逃避字符串.我没有使用jQuery.

javascript escaping

157
推荐指数
8
解决办法
32万
查看次数

Json:如何使用json.net正确剥离转义字符

我有以下格式的json响应.

"[{\\\"JobID\\\":\\\"1\\\",\\\"BillGenerationDate\\\":\\\"4/29/2013 2:53:34 PM\\\",\\\"BillID\\\":\\\"115743\\\",\\\"BillNo\\\":\\\"115743\\\",\\\"CustomerID\\\":\\\"4041705\\\",\\\"PayStatus\\\":\\\"0\\\",\\\"PaymentRequiredStatus\\\":\\\"True\\\",\\\"ProductName\\\":\\\"Epic FBO test\\\",\\\"Description\\\":\\\"Epic Automation 2\\\\r\\\\n\\\",\\\"ProductType\\\":\\\"eBill \\\",\\\"DueType\\\":\\\"-1\\\",\\\"DueDate\\\":\\\"2013-03-15\\\",\\\"Amount\\\":\\\"63.70\\\",\\\"Cost\\\":\\\"\\\"},
{\\\"JobID\\\":\\\"9\\\",\\\"BillGenerationDate\\\":\\\"5/2/2013 10:21:39 AM\\\",\\\"BillID\\\":\\\"115743\\\",\\\"BillNo\\\":\\\"115743\\\",\\\"CustomerID\\\":\\\"4041705\\\",\\\"PayStatus\\\":\\\"0\\\",\\\"PaymentRequiredStatus\\\":\\\"True\\\",\\\"ProductName\\\":\\\"FBO Test Product\\\",\\\"Description\\\":\\\"FBO Product Test\\\",\\\"ProductType\\\":\\\"eBill \\\",\\\"DueType\\\":\\\"-1\\\",\\\"DueDate\\\":\\\"2013-05-01\\\",\\\"Amount\\\":\\\"150.70\\\",\\\"Cost\\\":\\\"\\\"}]
Run Code Online (Sandbox Code Playgroud)

我相信json.net处理转义字符,我使用下面的代码将其反序列化为字典集合.

var billList = JsonConvert.DeserializeObject<List<Dictionary<string, string>>>(contentCorrected);
Run Code Online (Sandbox Code Playgroud)

但是这个json解析会抛出异常"无效的属性标识符:.Path'[0]',第1行,第2位." 我们可以通过操纵json响应字符串来解决这个问题吗?

c# string json json.net

12
推荐指数
2
解决办法
4万
查看次数

从 SQL 获取未转义的 JSON

我创建了一个存储过程来从 SQL Server 数据库中以 JSON 对象的形式提取数据。我的所有数据都是相关的,我试图将其作为 JSON 字符串获取。

目前,我可以很好地从 SQL Server 中获取 JSON 字符串,但是该对象始终包含转义字符(例如“{\”field\”:\“value\”})。我想提取相同的内容JSON,但没有转义字符。为了测试这一点,我使用了一些简单的查询,并使用SqlDataAdapter我的存储过程将它们输入.NET。

让我困惑的是,当我在 SSMS 中运行查询时,我从未看到任何转义字符,但是一旦它拉出 .NET 应用程序,转义字符就会出现。我想防止这种情况发生,并让我的应用程序仅获取未转义的 JSON 字符串。

我尝试了在研究过程中发现的一些建议,但没有产生我想要的结果。我所看到的更改(记录在 MSDN 和其他 SO 帖子中)涉及获取未转义的结果,但仅限于 SSMS 内,而不是其他应用程序内。

我尝试过的:

简单的 Json 查询设置为参数,然后使用 JSON_QUERY 来选择参数:

DECLARE @JSON varchar(max)

SET @JSON = (SELECT '{"Field":"Value"}' AS myJson FOR JSON PATH)

SELECT JSON_QUERY(@JSON) AS 'JsonResponse' FOR JSON PATH
Run Code Online (Sandbox Code Playgroud)

这会在 .NET 应用程序中生成以下内容:

"[{\"JsonResponse\":{\"Field\":\"Value\"}}]"
Run Code Online (Sandbox Code Playgroud)

这会在 SSMS 中生成以下内容:

[{"JsonResponse":[{"myJson":"{\"Field\":\"Value\"}"}]}]
Run Code Online (Sandbox Code Playgroud)

使用 JSON_QUERY 进行不带参数的简单 Json 查询:

SELECT JSON_QUERY('{"Field":"Value"}') AS 'JsonResponse' FOR JSON PATH
Run Code Online (Sandbox Code Playgroud)

这会在 .NET 应用程序中生成以下内容

"[{\"JsonResponse\":{\"Field\":\"Value\"}}]" …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server json

7
推荐指数
1
解决办法
9487
查看次数

标签 统计

json ×3

string ×2

c# ×1

escaping ×1

javascript ×1

json.net ×1

multiline ×1

sql ×1

sql-server ×1

syntax ×1

t-sql ×1