Github JSONObject文本必须以';Talend作业中“xml版本=”1.0“编码=”UTF-8“?”的字符1处{&“x27”
我想通过这个talend工作从github获取数据, 但是我无法获取数据,因为它显示了一些错误Github JSONObject文本必须以';Talend作业中“xml版本=”1.0“编码=”UTF-8“?”的字符1处{&“x27”,github,talend,github-api,rest-client,Github,Talend,Github Api,Rest Client,我想通过这个talend工作从github获取数据, 但是我无法获取数据,因为它显示了一些错误 A JSONObject text must begin with '{' at character 1 of <?xml version="1.0" encoding="UTF-8"?> <root><root><id>75978949</id><name>Samplerepository</name> 我修改了
A JSONObject text must begin with '{' at character 1 of <?xml version="1.0" encoding="UTF-8"?>
<root><root><id>75978949</id><name>Samplerepository</name>
我修改了作业,如,tRESTClient-->tFileOutputJSON和存储值,如下所示
[{"string":null,"body":
<?xml version="1.0" encoding="UTF-8"?>
<root>
<root>
<id>59002981</id>
<name>awesome-ciandcd</name>
<full_name>sample/awesome-ciandcd</full_name>
<owner>
<login>sample</login>
<id>354018</id>
</owner>
<private>false</private>
<fork>true</fork>
<forks_count>0</forks_count>
<default_branch>master</default_branch>
</root>
<root>
<id>35035177</id>
<name>yell-adapters-gelf</name>
<full_name>sample/yell-adapters-gelf</full_name>
<owner>
<login>sample</login>
<id>354018</id>
</owner>
<private>false</private>
<forks>0</forks>
<open_issues>0</open_issues>
<watchers>0</watchers>
<default_branch>master</default_branch>
</root>
</root>,"statusCode":200}]
[{“string”:null,“body”:
59002981
可怕的DCD
样本/DCD
样品
354018
假的
真的
0
主人
35035177
耶尔·盖尔夫
样本/呼叫适配器gelf
样品
354018
假的
0
0
0
主人
,“状态代码”:200}]
之后,创建了一个作业,tFileInputJSON-->textractJSonfiled-->tLogRow,但抛出的错误是:无法解析json文件:C:/Desktop/Output.json
如何处理这个问题?它抛出错误,因为响应是一个JSON数组,而不是一个简单的JSON对象 您可以将响应存储到json文件中。使用tFileInputJSON读取该文件,然后使用tExtractJSONFields提取值 下面是示例作业(我使用了上面的示例数据)
[示例作业,因为它不是JSONObject 这是一个JSONArray
TextRacJSonField组件中的Put循环路径查询似乎API返回的是XML而不是JSON。我尝试使用tXMLMap而不是TextRacJSonfiled,但这也会引发错误,如HTTP 415不支持的媒体类型。但我提前添加了tRESTClient的内容类型设置。在我的帖子中,我添加了URL的输出值。这不是一种XML格式。将结果存储在json输出文件中后,像上面的示例一样尝试。但它引发了一个错误,无法解析json文件:C:/Desktop/output.jsoni如果我选择Read By as JsonPath With loop,则生成了一条记录。但我需要获取所有值。19个计数您是在一个JSONArray中获取19条记录还是在19个不同的JSONArray中获取19条记录JSONArray?在第二种情况下,您可以生成19个临时文件并对其进行迭代。在第一种情况下,您只需要更改查询。就像在tFileInputJSON中读取到jSONPath的更改一样,循环JSONquery可以是“$[*]”,jSONPath查询可以是“$”,TexractJSonfield中不需要更改。我有一个JSONArray,包含19条记录
[{"string":null,"body":
<?xml version="1.0" encoding="UTF-8"?>
<root>
<root>
<id>59002981</id>
<name>awesome-ciandcd</name>
<full_name>sample/awesome-ciandcd</full_name>
<owner>
<login>sample</login>
<id>354018</id>
</owner>
<private>false</private>
<fork>true</fork>
<forks_count>0</forks_count>
<default_branch>master</default_branch>
</root>
<root>
<id>35035177</id>
<name>yell-adapters-gelf</name>
<full_name>sample/yell-adapters-gelf</full_name>
<owner>
<login>sample</login>
<id>354018</id>
</owner>
<private>false</private>
<forks>0</forks>
<open_issues>0</open_issues>
<watchers>0</watchers>
<default_branch>master</default_branch>
</root>
</root>,"statusCode":200}]