jsonNode pretty prints a JSON node.
(j json.JSON)
| 2172 | |
| 2173 | // jsonNode pretty prints a JSON node. |
| 2174 | func (p *PrettyCfg) jsonNode(j json.JSON) pretty.Doc { |
| 2175 | // Figure out what type this is. |
| 2176 | if it, _ := j.ObjectIter(); it != nil { |
| 2177 | // Object. |
| 2178 | elems := make([]pretty.Doc, 0, j.Len()) |
| 2179 | for it.Next() { |
| 2180 | elems = append(elems, p.nestUnder( |
| 2181 | pretty.Concat( |
| 2182 | pretty.Text(json.FromString(it.Key()).String()), |
| 2183 | pretty.Text(`:`), |
| 2184 | ), |
| 2185 | p.jsonNode(it.Value()), |
| 2186 | )) |
| 2187 | } |
| 2188 | return p.bracket("{", p.commaSeparated(elems...), "}") |
| 2189 | } else if n := j.Len(); n > 0 { |
| 2190 | // Non-empty array. |
| 2191 | elems := make([]pretty.Doc, n) |
| 2192 | for i := 0; i < n; i++ { |
| 2193 | elem, err := j.FetchValIdx(i) |
| 2194 | if err != nil { |
| 2195 | return pretty.Text(j.String()) |
| 2196 | } |
| 2197 | elems[i] = p.jsonNode(elem) |
| 2198 | } |
| 2199 | return p.bracket("[", p.commaSeparated(elems...), "]") |
| 2200 | } |
| 2201 | // Other. |
| 2202 | return pretty.Text(j.String()) |
| 2203 | } |
no test coverage detected