当前位置: 首页 > 知识库问答 >
问题:

可以用新的JSON替换列中的整个JSON吗

尉迟晔
2023-03-14

我有一个代码,它执行一个脚本,我想用一个全新的JSON数据更新表中的一列。我知道使用< code>Json_Modify也可以做到这一点,但是我想知道是否有可能用新的数据替换旧的Json数据。

将脚本作为原始SQL查询执行的代码:

public async Task Run(Args args)
{
    var scrPath = Path.Combine(Directory.GetCurrentDirectory(), "FolderName", args.subFolderName);

    var dataChangeSqlPath = Path.Combine(scrPath, args.DataChangeSqlFileName);
    var query = await this.GetSql(dataChangeSqlPath);
    await this.db.Database.ExecuteSqlRawAsync(query);
}

private async Task<string> GetSql(string path)
{
    var sql = await File.ReadAllTextAsync(path);
    return sql.ToString();
}

这是它试图执行的脚本:

And this is the script it is trying to execute:

DECLARE @answers_json NVARCHAR(max);

BEGIN TRY   
    BEGIN TRANSACTION
        SELECT
             @answers_json = N'{"CONST_TRUE":{"type":"specified","boolValue":true}}'

        BEGIN
            UPDATE [dbo].[ColumnName] 
            SET  
               AnswersJson= @answers_json
            WHERE 
                Id=2 AND Number=1;

    END
    COMMIT
END TRY
BEGIN CATCH
    IF @@TRANCOUNT > 0 ROLLBACK TRANSACTION
    SELECT
        @error_message = ERROR_MESSAGE(),
        @error_severity = ERROR_SEVERITY(),
        @error_state = ERROR_STATE();
    RAISERROR (@error_message, @error_severity, @error_state);
END CATCH

它抛出并出错:

系统格式异常:输入字符串的格式不正确。

但是,当我执行脚本直接在SQL服务器然后它工作正常。

非常感谢任何帮助/建议。

共有1个答案

郑俊弼
2023-03-14

谢谢查理脸和普雷姆·拉杰。张贴您的讨论作为答案,以帮助其他社区成员。

使用ExecuteRawSql支持的正确参数化。例如ExecuteRawSqlAsync("INSERT YourTable(ol)VALUES({0})", yourJsonVariable)

 类似资料:
  • 问题内容: 我的apicontroller返回了以下JSON对象: 我要替换为 我已经尝试了下面的代码,但它仅代替的第一次出现。如何替换所有条目? 谢谢, 问题答案: 您需要使替换全局: 这样,它将继续替换null直到到达结尾 正则表达式文档: https://developer.mozilla.org/zh- CN/docs/Web/JavaScript/Reference/Global_Obj

  • 问题内容: 我正在考虑用下划线替换JSON键中所有空格的最佳解决方案。 我希望上述转换如下所示: 有什么建议 ? 是否有任何Java库具有任何预定义功能来执行此操作? 问题答案: 更换钥匙 以下代码使用Google的JSON解析器提取密钥,将其重新格式化,然后创建一个新的JSON对象: 您可以在此处阅读有关GSON的更多信息。 替换值 根据JSON数据的设置方式,您可能需要使用JSONObject

  • 问题内容: 我有一个JSON请求,该请求从youtube返回一个响应,其中包含对特定视频的评论。我目前有3种文本视图:一种用于名称/上载器,一种用于内容,一种用于发布日期- 然后用我的JSON响应中的数据填充。 我的问题是-仅出现第一个评论,发布日期和上传者。 我相信我将需要用列表视图替换我的textviews并将其解析为3个字段-我只是不知道如何。 爪哇 公共类Player扩展了YouTubeB

  • 我正在尝试编写一个批处理脚本来更改以下两个名为example1的JSON的“tags”键的值。json和示例2。json。 输入示例1。json 输入example2.json 预期的输出是两个同名的JSON,但标记值现在已更改。 Example1.json: 输入标记值-example1(即json文件名) 输出标签值-tags1(根据要求) Example2.json 输入标记值-exampl

  • 我们有这样一个json字符串: 我们想使用下面的代码来替换后一个key6的值: 但是由于key6在jsonstring中显示了两次,我们替换了错误的值。上面的json结构只是一个例子,“key6”的json路径在不同的json中是完全不同的。我们无法为这种替换编写确切的jsonpath。我们怎么能只是用java替换没有孩子的“key6”的值?多谢了。

  • 我创建了以下主题、流和表: 为以上创建的主题创建表和流。 我可以看到以下数据: 我的问题: 现在我要将addressId 1(Fremont)替换为addressId 1(Detroit)。我怎么能那样做? 我还尝试打印输入到控制台的流,如票证中所述 是否将Kafka流输入打印到控制台? 只是,我可以看到下面的输出: 12:04:42.145[StreamThread-1]DEBUG org.ap