jsonNode pretty prints a JSON node.
(j json.JSON)
| 2500 | |
| 2501 | // jsonNode pretty prints a JSON node. |
| 2502 | func (p *PrettyCfg) jsonNode(j json.JSON) pretty.Doc { |
| 2503 | // Figure out what type this is. |
| 2504 | if it, _ := j.ObjectIter(); it != nil { |
| 2505 | // Object. |
| 2506 | elems := make([]pretty.Doc, 0, j.Len()) |
| 2507 | for it.Next() { |
| 2508 | elems = append(elems, p.nestUnder( |
| 2509 | pretty.Concat( |
| 2510 | pretty.Text(json.FromString(it.Key()).String()), |
| 2511 | pretty.Text(`:`), |
| 2512 | ), |
| 2513 | p.jsonNode(it.Value()), |
| 2514 | )) |
| 2515 | } |
| 2516 | return p.bracket("{", p.commaSeparated(elems...), "}") |
| 2517 | } else if n := j.Len(); n > 0 { |
| 2518 | // Non-empty array. |
| 2519 | elems := make([]pretty.Doc, n) |
| 2520 | for i := 0; i < n; i++ { |
| 2521 | elem, err := j.FetchValIdx(i) |
| 2522 | if err != nil { |
| 2523 | return pretty.Text(j.String()) |
| 2524 | } |
| 2525 | elems[i] = p.jsonNode(elem) |
| 2526 | } |
| 2527 | return p.bracket("[", p.commaSeparated(elems...), "]") |
| 2528 | } |
| 2529 | // Other. |
| 2530 | return pretty.Text(j.String()) |
| 2531 | } |
no test coverage detected