http请求数据返回json中string字段包含unicode的转码

[java]  view plain  copy
  1. public static String decodeUnicode(String theString) {    
  2.         char aChar;    
  3.         int len = theString.length();    
  4.         StringBuffer outBuffer = new StringBuffer(len);    
  5.         for (int x = 0; x < len;) {    
  6.             aChar = theString.charAt(x++);    
  7.             if (aChar == '\\') {    
  8.                 aChar = theString.charAt(x++);    
  9.                 if (aChar == 'u') {    
  10.                     // Read the xxxx    
  11.                     int value = 0;    
  12.                     for (int i = 0; i < 4; i++) {    
  13.                         aChar = theString.charAt(x++);    
  14.                         switch (aChar) {    
  15.                         case '0':    
  16.                         case '1':    
  17.                         case '2':    
  18.                         case '3':    
  19.                         case '4':    
  20.                         case '5':    
  21.                         case '6':    
  22.                         case '7':    
  23.                         case '8':    
  24.                         case '9':    
  25.                             value = (value << 4) + aChar - '0';    
  26.                             break;    
  27.                         case 'a':    
  28.                         case 'b':    
  29.                         case 'c':    
  30.                         case 'd':    
  31.                         case 'e':    
  32.                         case 'f':    
  33.                             value = (value << 4) + 10 + aChar - 'a';    
  34.                             break;    
  35.                         case 'A':    
  36.                         case 'B':    
  37.                         case 'C':    
  38.                         case 'D':    
  39.                         case 'E':    
  40.                         case 'F':    
  41.                             value = (value << 4) + 10 + aChar - 'A';    
  42.                             break;    
  43.                         default:    
  44.                             throw new IllegalArgumentException(    
  45.                                     "Malformed   \\uxxxx   encoding.");    
  46.                         }    
  47.         
  48.                     }    
  49.                     outBuffer.append((char) value);    
  50.                 } else {    
  51.                     if (aChar == 't')    
  52.                         aChar = '\t';    
  53.                     else if (aChar == 'r')    
  54.                         aChar = '\r';    
  55.                     else if (aChar == 'n')    
  56.                         aChar = '\n';    
  57.                     else if (aChar == 'f')    
  58.                         aChar = '\f';    
  59.                     outBuffer.append(aChar);    
  60.                 }    
  61.             } else    
  62.                 outBuffer.append(aChar);    
  63.         }    
  64.         return outBuffer.toString();    
  65.     }  
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当我们在请求JSON数据时,可能会遇到两种主要问题:JSON数据格式错误或JSON字段格式转化问题。 首先,如果我们收到错误消息"请求JSON数据格式错误",这意味着我们发送的请求包含JSON数据格式有错误。这可能是由于以下几个原因: 1. JSON语法错误:JSON数据必须符合严格的语法规则。例如,每个键和值都必须用双引号引起来,对象和数组之间必须使用逗号分隔等。因此,我们需要仔细检查我们发送的JSON数据是否符合这些规则。 2. 缺少必需的字段:有时,服务器可能要求在请求包含特定的字段,如果我们漏掉了这些字段,服务器会判断为JSON格式错误。因此,我们需要确保请求包含了服务器要求的所有必需字段。 另外,我们还可能遇到JSON字段转化问题。这是因为JSON格式是一种用于数据交换的通用格式,不同编程语言和框架对JSON字段的解析和使用可能有所不同。以下是两种常见的JSON字段转化问题: 1. 类型不匹配:对于某些编程语言,JSON字段的值在转化为对应的数据类型时可能会发生错误。例如,JSON的字符串值可能无法正确转化为整数或布尔型。为了解决这个问题,我们需要检查字段的类型,并使用适当的方法将其转化为所需的类型。 2. 命名不一致:不同的编程语言和框架可能对于JSON字段的命名有不同的约定。例如,某些语言使用camelCase命名风格(例如firstName),而其他语言可能使用snake_case命名风格(例如first_name)。因此,在处理JSON数据时,我们需要根据编程语言的约定进行适当的字段命名转化。 总之,在请求JSON数据时,出现数据格式错误或字段格式转化的问题是常见的。了解并遵循JSON数据的语法规则,以及了解不同编程语言对于JSON字段的解析和使用习惯,可以帮助我们更好地处理这些问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值