json数据解析出错应该怎么办?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了json数据解析出错应该怎么办?相关的知识,希望对你有一定的参考价值。

JSON数据解析错误处理办法如下:

-JSONValue failed. Error is: Unescaped control character [0x0D]

这个错误就是JSON解析的时候String 的时候出现转义字符。

对应用NSString 里的stringByReplacingOccurrencesOfString:@"\\r"withString:@"" 取消掉转义字符就OK那!

NSString *json_string1=[json_string stringByReplacingOccurrencesOfString:@"\\r"withString:@""];

或者是在线工具生成的代码,并不能保证百分百准确的。

参考技术A

1、执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。异常详细信息: System.IO.FileLoadException: 未能加载文件或程序集“Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。

2、都是通过转码来解决,但是直接转码,是不能达到效果的,例如[jsonStringstringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]。这样直接转码是达不到效果的,解析数据的时候,可以先把数据存放在NSdata对象中,再进行转码。

3、ajax获取并解析json数据:<script type="text/javascript"> function jsondata(url) //url 定义变量 方便其他页面直接调用函数 $.ajax( url:url, type:"GET", //请求方式 dataType:"json", //请求数据类型 success:function(result) //请求成功,执行以下函数 console.log(result);//控制台打印json数据 code:100,list:[name:"张三",age:"12"]。

4、Json解析在对象中出现关键字问题,可以通过注解关联解析对象的key来解决这个问题,具体如下:fastjson使用者 @JSONField(name = “switch”) public String myswitch; Gson @SerializedName(“abstract”) public String myabstract;以上如果命名为private则在set和get方法上添加注解。

参考技术B

JSON数据解析错误处理方法如下:

-JSONValue失败。错误是:未转义的控制字符[0x0D]

此错误发生在JSON解析字符串和转义字符时。

若要在NSString中应用string by replacing current of string:@ " \\ r "顶住:@ ",请取消转义字符,这样就可以。

nsString * JSON _ string 1 =[JSON _ string StringByrPlacingCollectionString:@ " \\ r "顶住:@ " "]。

JSON是一种轻量级数据交换格式  它基于ECMAScript(由欧洲计算机协会制定的js规范)的子集,并使用完全独立于编程语言的文本格式来存储和表示数据。  简洁清晰的层次结构使JSON成为一种理想的数据交换语言  便于人们读写,易于机器分析和生成,有效提高了网络传输效率。

参考技术C 解析出错 一般都是json字符串格式不正确,可以登录www.haojson.com 在线json格式校验。
也可以取消调转字符。
参考技术D 这两天也碰到这个问题了,最后弄清楚了,是接收到的字符串中有反斜杠 \,最后把\代替为\\\\才成功。
感觉NSJSONSerialization应该是将我们字符串中的两个反斜杠中的第一个解释为特殊字符,
也就是当我们定义

12NSString * string_ = @"\"c\":\"\\\\\"";NSLog(@"%@",string_) ; 输出 "c":"\\"

而如果通过NSJSONSerialization来解析string_

1234NSData* data = [string_ dataUsingEncoding:NSUTF8StringEncoding]; NSError* error=nil; NSMutableDictionary* rtnDictionary=[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers erro r:&error];NSLog(@"%@",[rtnDictionary objectForKey:@"c"]) ; 输出 \

Snowflake - 尝试将一行 csv 数据加载到 Variant - “解析 JSON 时出错:”

【中文标题】Snowflake - 尝试将一行 csv 数据加载到 Variant - “解析 JSON 时出错:”【英文标题】:Snowflake - trying to load a row of csv data into Variant - "Error parsing JSON:" 【发布时间】:2019-01-09 16:32:13 【问题描述】:

我正在尝试将 csv 文件中的每一行的全部内容加载到变体列中。

我的copy into 语句失败并显示以下内容

解析 JSON 时出错:

这真的很奇怪,因为我的数据不是 JSON,而且我从未告诉它尝试将其验证为 json。

create or replace file format NeilTest
RECORD_DELIMITER = '0x0A'
field_delimiter = NONE
 TYPE =  CSV 
VALIDATE_UTF8 = FALSE;

    create table Stage_Neil_Test
(
  Data VARIANT,
  File_Name string

);

copy into Stage_Neil_Test(Data, File_Name
                                 ) 
from (select 
      s.$1,  METADATA$FILENAME
      from @Neil_Test_stage s)

如何阻止雪花认为它是 JSON?

【问题讨论】:

【参考方案1】:

您需要将文本显式转换为 VARIANT 类型,因为它无法像数据为 JSON 时那样自动解释它。

简单地说:

copy into Stage_Neil_Test(Data, File_Name
                                 ) 
from (select 
      s.$1::VARIANT,  METADATA$FILENAME
      from @Neil_Test_stage s)

【讨论】:

这样的话,雪花中的数据会是csv格式吗?还是会自动转成JSON格式??

以上是关于json数据解析出错应该怎么办?的主要内容,如果未能解决你的问题,请参考以下文章

json解析错误怎么办?

叨叨记账json数据解析出错是怎么回事?有啥办法恢复

C#中怎么解析JSON数据?

json解析出错误

JSON.parse解析出错解决办法

解析 JSON 数据时出错(Swift 4 Playground)