// ĠCopyright Ġ 2 0 0 0 - 2 0 2 1 ĠJetBrains Ġs . r . o . Ġand Ġcontributors . ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense Ġthat Ġcan Ġbe Ġfound Ġin Ġthe ĠLICENSE Ġfile . Ċ @ file : Jvm Name (" Jack son Util ") Ċ package Ġcom . intellij . util . io . jackson Ċ Ċ import Ġcom . fasterxml . jackson . core . Json Factory Ċ import Ġcom . fasterxml . jackson . core . Json Generator Ċ import Ġcom . fasterxml . jackson . core . Json Parser Ċ import Ġcom . fasterxml . jackson . core . Json Token Ċ import Ġcom . fasterxml . jackson . core . util . Default Ind enter Ċ import Ġcom . fasterxml . jackson . core . util . Default PrettyPrinter Ċ import Ġjava . io . IOException Ċ import Ġjava . io . Reader Ċ import Ġkotlin . jvm . Throws Ċ Ċ inline Ġfun ĠJson Generator . obj ( fieldName : ĠString ? Ġ= Ġnull , Ġwriter : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠ ĠfieldName ?. let Ġ{ ĊĠĠĠ Ġwrite FieldName ( it ) ĊĠ Ġ} ĊĠ Ġwrite Start Object () ĊĠ Ġwriter () ĊĠ Ġwrite End Object () Ċ } Ċ Ċ inline Ġfun ĠJson Generator . array ( fieldName : ĠString ? Ġ= Ġnull , Ġwriter : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠ ĠfieldName ?. let Ġ{ ĊĠĠĠ Ġwrite FieldName ( it ) ĊĠ Ġ} ĊĠ Ġwrite Start Array () ĊĠ Ġwriter () ĊĠ Ġwrite End Array () Ċ } Ċ Ċ open Ġclass ĠIntelliJ PrettyPrinter Ġ: ĠDefault PrettyPrinter () Ġ{ ĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġ@ Jvm Field Ġval ĠUNIX _ LINE _ FEED _ INSTANCE Ġ= ĠDefault Ind enter (" Ġ Ġ", Ġ"\ n ") ĊĠ Ġ} ĊĊĠ Ġinit Ġ{ ĊĠĠĠ Ġ_ object FieldValue Separator With Spaces Ġ= Ġ": Ġ" ĊĠĠĠ Ġ_ object Ind enter Ġ= ĠUNIX _ LINE _ FEED _ INSTANCE ĊĠ Ġ} Ċ } Ċ Ċ @ Throws ( IOException :: class ) Ċ fun Ġread Single Field ( parser : ĠJson Parser , Ġname : ĠString ): ĠString ? Ġ{ ĊĠ Ġif Ġ( parser . nextToken () Ġ== ĠJson Token . START _ OBJECT ) Ġ{ ĊĠĠĠ Ġwhile Ġ( parser . nextToken () Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠ Ġif Ġ( parser . current Name Ġ== Ġname ) Ġ{ ĊĠĠĠĠĠĠĠ Ġparser . nextToken () ĊĠĠĠĠĠĠĠ Ġreturn Ġparser . text ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġparser . skip Children () ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĠ Ġreturn Ġnull Ċ } Ċ