小弟有一个需求,需要通过外部文件获取多个json字符串,放在一个[][]bytes里面。然后将其unmarshal到另外一个[]struct里面。由于json有很多种,需要unmarshal到不同的struct内。想咨询各位大神,有什么优雅的方式,实现一个方法,传入[][]bytes和interface{}(实际为各种[]struct),得到unmarshal后的[]struct呢?
小弟有一个需求,需要通过外部文件获取多个json字符串,放在一个[][]bytes里面。然后将其unmarshal到另外一个[]struct里面。由于json有很多种,需要unmarshal到不同的struct内。想咨询各位大神,有什么优雅的方式,实现一个方法,传入[][]bytes和interface{}(实际为各种[]struct),得到unmarshal后的[]struct呢?
2 回答1.4k 阅读
2 回答1.5k 阅读
3 回答1.1k 阅读
2 回答1.3k 阅读
2 回答1.3k 阅读
3 回答902 阅读
2 回答1.1k 阅读
如果你的struct种类是不定的,可以用interface,如果是确定的,就应该用
具体方法:
首先遍历 [][]bytes,得到多个[]byte,然后写一个函数,能通过这个[]byte知道他要转化成的struct的名字,这一步推荐使用jsonparser来做。
然后找到你要的struct的slice,就行unmarshall。
如果是struct类型数量是确定的,那么你应该知道怎么做。
如果是未知的,那么久可以通过reflect来得到相应的Field。