c# – 通过命令行传递JSON字符串
我将一个对象序列化为json字符串并通过命令行将其传递给应用程序,但是当我在应用程序中收到参数时,这不再是json字符串而是常规字符串.
我正在使用下面的代码来创建json字符串 var jsonStr = new JavaScriptSerializer().Serialize(obj); 我正在传递的字符串 – “{”name“:”abc“,”place“:”xyz“}” 如何维护json字符串的结构? 解决方法
我想双重推论已被消除,因为它们在CLI世界中具有意义.
我会说将整个JSON转换为基本64字符串,然后,在CLI内部再次转换为常规字符串应该工作: var jsonStr = Convert.ToBase64String(Encoding.UTF8.GetBytes(new JavaScriptSerializer().Serialize(obj))); // When your receive the whole string.... var jsonStr = Encoding.UTF8.GetString(Convert.FromBase64String(inputStr)); // Now deserialize your JSON string into a regular .NET object... 回答@Panagiotis Kanavos的一些评论……
正如我在评论中指出的那样,我知道在.NET世界中我们不需要逃避JSON,也许在其他环境中也没有必要这样做. 我建议使用base 64方法,因为它是一个防弹解决方案,并且因为OP提供了一些细节和代码示例不足,所以在一天结束时,我相信它的基本64方法与仅仅避免双引号一样有效,但它也是提供了一个附加值:除了“.”之外,它还会逃避任何特殊字符. 顺便说一句,实际情况是CLI会阻止某些字符. Windows上的redis-cli不允许使用大括号… 更新2 由于@Panagiotis Kanavos将CLI与公共语言接口混淆,我想确保每个阅读我答案的人都将CLI理解为命令行界面. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |