json格式如何读取有特殊字符的数据!内详!

json格式如何读取有特殊字符的数据!内详!,第1张

json格式是{a:b,c:d},所以你从数据库读出的值如果包含{,,逗号,这类构造json格式的特殊字符,那么就容易破坏json数据的格式,自然无法正确读出,用replace方法替换掉特殊字符,在特殊字符前加\。

最近遇到一个问题,在lua中使用cjson解析json中数据为null时,解析出来是一个userdata。如图:

我们需要判断这个值使用cjsonnull。

具体的可以看看 文档 很详细。

使用JSON从后台向前台传输数据的时候,当数据本身含有一些特殊字符,会导致JSON数据的解析出错。

使用下面的方法对即将向前台输出的json字符串进行处理,可以解决键盘上能输入的所有特殊字符问题。

//当文本中含有如下特殊字符时,此方法可以成功处理,让其在前台被正确解析,注意:此法不能处理单引号

public static String stringToJson(String s) {

StringBuffer sb = new StringBuffer ();

for (int i=0; i<slength(); i++) {

char c = scharAt(i);

switch (c) {

case '\"':

sbappend("\\\"");

break;

// case '\\': //如果不处理单引号,可以释放此段代码,若结合下面的方法处理单引号就必须注释掉该段代码

// sbappend("\\\\");

// break;

case '/':

sbappend("\\/");

break;

case '\b': //退格

sbappend("\\b");

break;

case '\f': //走纸换页

sbappend("\\f");

break;

case '\n':

sbappend("\\n"); //换行

break;

case '\r': //回车

sbappend("\\r");

break;

case '\t': //横向跳格

sbappend("\\t");

break;

default:

sbappend(c);

}}

return sbtoString();

}

//注意,下面的方法是在把你的数据文本接入json数据字符串之前使用,预先对文本做处理后在接入JSON字符串

//处理文本中的单引号 和 斜杠

public static String StringDanYinToJSON(String ors) {

ors = ors == null "" : ors;

StringBuffer buffer = new StringBuffer(ors);

int i = 0;

while (i < bufferlength()) {

if (buffercharAt(i) == '\'' || buffercharAt(i) == '\\') {

bufferinsert(i, '\\');

i += 2;

} else {

i++;

}

}

return buffertoString();

}

版本 2

程序集 类_json, , 公开, 注意:对于数字键名或者非正常变量字符(比如有空格),必须使用 aa[x]的方式。

子程序 成员数, 整数型, 公开

参数 名字, 文本型, 可空, 支持abc,根目录为空

子程序 赋值, , 公开

参数 值, 文本型

参数 为对象, 逻辑型, 可空, 数值,json节点

子程序 加成员, , 公开

以上就是关于json格式如何读取有特殊字符的数据!内详!全部的内容,包括:json格式如何读取有特殊字符的数据!内详!、【Lua】cjson解析null、JSON如何获取非法字符的字段的值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9821635.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存