当前位置: 首页 > 知识库问答 >
问题:

通过将嵌套对象添加到Apache Nifi中的单列来将嵌套JSON转换为CSV

云煌
2023-03-14

我有一个嵌套的对象 JSON 结构,如下所示;

{
"Bikes":[
{
"Name":"KTM",
"Model":"2017",
"Colour":"Yellow"
}
{
"Name":"Yamaha",
"Model":"2020",
"Colour":"Black"
}
],
"Cars":[
{
"Name":"BMW",
"Model":"2017",
"Colour":"Yellow"
}
{
"Name":"Audi",
"Model":"2020",
"Colour":"Black"
}
]

我的输出CSV应该是这样的;

Bikes (Column 1)
{
"Name":"KTM",
"Model":"2017",
"Colour":"Yellow"
}
{
"Name":"Yamaha",
"Model":"2020",
"Colour":"Black"
}
Cars (Columns 2)
{
"Name":"BMW",
"Model":"2017",
"Colour":"Yellow"
}
{
"Name":"Audi",
"Model":"2020",
"Colour":"Black"
}
'''
I need to store the entire object Bikes in a single columns and likewise Cars in a single column

I am currently using a convert record processor to convert from JSON to CSV, MY avro schema for both JSON and CSV looks like this

{“name”:“Sydney”,“type”:“record”,“namespace”:”Sydney“,“fields”:[{“name:”Bikes“,“type:”{“type:“array”,“items”:{“name”:“Vehicle”,“type”:“record”,“field”:[{“name“:”name“,”type:“string”},{“name=”:“Model”,”type“:”string“},{“name:”Colour“,”type“:”字符串“}}}},{“name”:“Cars”,“type”:{“type“:”array“,”items“:{”name“:”Vehicle“,”type““:”record“,”fields“:[{”名称“:”name“,”类型“:”string“},{”name:“Model”,“type”:“string”},}“name“:“Colour”,”type:“string“}]}}]}

but in the convert record processor I am getting this error

[id=4d909c18-0177-1000-c1c1cd-9456a1775358]处理标准文件记录失败[uuid=63d04fc1-7edd-405b-8a9d-000bcdaa3d6c,索赔=标准内容索赔[resourceClaim=标准资源索赔[id=1611930760172-32,容器=默认,部分=32],偏移=744686,长度=4],偏移=0,名称=test.json,大小=4];将路由到失败:从Convert记录[id=4d909c18-0177-1000-c1cd-9456a1775358]抛出的IOExc的:org.codehaus.jackson.JsonParseExc的:意外的字符('T'(代码84)):预期一个有效的值(数字,字符串,数组,对象,'true','false'或'null')在[Source:org.apache.nifi.stream.io.NonCloseableInputStream@5b8393b6; line: 1,列: 2]

Could anyone help me out on this?

共有1个答案

公冶元青
2023-03-14

您可能需要使用jolt变换来实现这一点,它有自己的处理器。像这样重构一个简单的嵌套JSON是他们记录的例子之一。

 类似资料:
  • 问题内容: 有人可以提供一个示例或参考,该示例或参考提供一种使用Jackson库将嵌套JAVA对象转换为JSON输出的方法的方法。我没有转换平面JAVA对象的问题。但是,JSON库显示嵌套的对象名称和类型,而不是其子对象。我几乎可以利用此处提供的相同代码http://www.mkyong.com/java/jackson-2-convert- java-object-to-from-json/ 。

  • 当我试图使用ModelMapper将嵌套的java对象转换为嵌套的DTO时,我遇到了一个问题。在父DTO对象中,子DTO为null。以下是代码片段。 实体类: DTO的课程: 这是映射器代码: 输出: 输出用户DTO:UserDTO[名称=xyz,地址=null,产品=null] 在这里,我想将用户实体转换为UserDTO-dto。我得到了地址和产品DTO的空值。我在这里到底缺少什么?有人知道吗?

  • 问题内容: 我是Python和Pandas的新手。我正在尝试将Pandas Dataframe转换为嵌套的JSON。函数.to_json()不能为我的目标提供足够的灵活性。 以下是数据框的一些数据点(在csv中,以逗号分隔): 有很多重复的信息,我想要一个这样的JSON: 我怎样才能做到这一点? 编辑: 再现数据帧的代码: 问题答案: 更新: 结果(格式化): 旧答案: 你可以用它做的,和方法:

  • 问题内容: 我在Postgres中有一个包含此数据的表,并且很难将其转换为JSON对象。 我该如何转换呢? 任何建议都会有所帮助。谢谢 问题答案: 使用(https://www.postgresql.org/docs/current/static/queries- with.html )和JSON函数(https://www.postgresql.org/docs/current/static/f

  • 我有一个嵌套的JSON对象,如下所示: 我想将其转换为: 我如何使用JOLT实现这一点?感谢您的参与。

  • 问题内容: 我正在寻找一种优雅的方式来获取数据,该数据使用具有一些嵌套dict和列表(例如javascript样式对象语法)的dict进行属性访问。 例如: 应该以这种方式访问​​: 我认为,没有递归是不可能的,但是获得字典对象样式的一种好方法是什么? 问题答案: 更新:在Python 2.6及更高版本中,请考虑namedtuple数据结构是否满足你的需求: 备选方案(原始答案内容)为: 然后,你