不一致的问题不是编码的问题  而是json字符串的问题通常我们会json 嵌套  我们先来看连个字符串

{"contentType":"","httpMethod":"POST","paramMap":"{\"keyword\":\"华为\"}","url":"https:\/\/bizapi.jd.com\/api\/search\/search"}    --第一条

{"contentType":"","httpMethod":"POST","paramMap":{"keyword":"华为"},"url":"https://bizapi.jd.com/api/search/search"}     ----第二条

-----接下来我们看一下效果

看第二条的

第一条情况:我们将json 字符串 转换为对象 直接使用 但是  paramMap的值是一个字符串  我们又要将 该值转换为json在使用的过程中  我们转换了两次

第二条情况:直接转换为json对象 我们分别取不同key的value来使用      发生错误的问题 应该是有  反斜杠转移符

我们上一下代码

using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms; namespace Base64
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} private void button1_Click(object sender, EventArgs e)
{
Dictionary<string, string> dic = new Dictionary<string, string>();
dic.Add("Cid", ""); dic.Add("type", "int");
JsonStr jsonstr=new JsonStr(dic,"http://localhost");
string result = JavaBase64(JsonConvert.SerializeObject(jsonstr));
} #region 实体类
/// <summary>
/// 实体类
/// </summary>
class JsonStr
{
public string Method = "POST";
public Dictionary<string, string> param;
public string url = "";
public JsonStr(Dictionary<string, string> _param, string _url)
{
param = _param; url = _url;
}
}
#endregion #region 转换为单字节 java base64
/// <summary>
/// 转换为单字节 java base64
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static string JavaBase64(string str)
{
byte[] by = Encoding.UTF8.GetBytes(str);
sbyte[] sby = new sbyte[by.Length];
for (int i = ; i < by.Length; i++)
{
if (by[i] > )
sby[i] = (sbyte)(by[i] - );
else
sby[i] = (sbyte)by[i];
}
byte[] newby = (byte[])(object)sby;
return Convert.ToBase64String(newby);
}
#endregion }
}

这个问题 近期在与第三方服务商 遇到json问题时处理的

一般c# json嵌套在对象重 再把整个对象转为json   是字符串一

{"contentType":"","httpMethod":"POST","paramMap":"{\"keyword\":\"华为\"}","url":"https:\/\/bizapi.jd.com\/api\/search\/search"}

而上述字符串在第三方那里却解不开  随后按照代码里的方式  使字符串为json字符串  中间不含json嵌套的  因为嵌套会多出来很多  反斜杠转移符  所以导致  第三方那里解不开

如果想要知道c# java base64 为什么解不开

首先了解  c# java  的byte   c# 0~255  java  -128~127  其次是我们的字符串    我们的字符串  base64  编码前对比  编码后对比  如果一致问题是可以解决的  剩下的思考问题就留给你遐想了

QQ:35924908  附加信息:博客园看到的

最新文章

  1. JQuery 阻止js事件冒泡 阻止浏览器默认操作
  2. C# 获取本机CPU序列号,MAC地址,硬盘ID,本机IP地址,计算机名,物理内存,PC类型
  3. 小白linux安装php 5.6+nginx配置(踩坑版)
  4. Python使用基础
  5. [转]AutoResetEvent 与 ManualResetEvent区别
  6. eclipse批量删除断点(转)
  7. 深入浅出ghostbuster剖析NodeJS与PhantomJS的通讯机制
  8. Android中Handler作用
  9. Failed to install apk on device timeout
  10. myeclipse开发代码颜色搭配保护视力
  11. 封装的localstorge的插件,store.js
  12. CountDownLatch与CyclicBarrier
  13. [js高手之路] vue系列教程 - 绑定设置属性的多种方式(5)
  14. (一)《Maven实战》读书笔记 —— Maven简介
  15. 利用Python进行数据分析——Ipython
  16. 通过GIT_COMMIT进行代码回滚
  17. java学习笔记01-环境配置
  18. 一位资深Java架构师的晋级心得
  19. 身份证运算符 is 和 is not(检查两个数据在内存当中是否是同一个值) | 逻辑运算符 and or not | 数据类型的判断 isinstance
  20. Kafka实战-KafkaOffsetMonitor

热门文章

  1. Spring MVC简介 2.5 Spring MVC执行的流程
  2. consul 集群安装
  3. 实现第三方登录(QQ、微信、微博)
  4. BZOJ 2324 (有上下界的)费用流
  5. Web启动,停止Windows服务
  6. css3中的animation属性
  7. Android 接入微信分享错误码-6
  8. 01--Qt扫盲篇
  9. 函数编程中functor和monad的形象解释
  10. Kafka学习笔记(7)----Kafka使用Cosumer接收消息