Wątek przeniesiony 2021-09-16 09:47 z Inne języki programowania przez cerrato.

Json z elementu mapy

0

Mam sobie mape i kilka elementów. Np:

mapa := map[int]string{
		1: "Marek",
		2: "Darek",
	}

Chce z jednego elementu zrobic jsona, np:

{
    1 : "Marek"
}

Korzystam z Gin-Gonic. Jak zrobie

gin.Context.JSON(http.StatusOK, mapa[1])

to serializuje mi samą wartość, ale bez klucza. Jak uzyskac jsona z key-value ?

1

A nie możesz zrobić mapy z tą jedną parą?

0

OK, moge tak zrobic, nikt mi nie zabrania, ale może jest jakieś bardziej eleganckie rozwiązanie niz tworzenie nowej mapy ?

1

Poza tym, że:

{
    1 : "Marek"
}

Nie jest poprawnym JSONem, to nie sądzę, by był prostszy sposób niż zrobienie tymczasowej nowej mapy.

0
hauleth napisał(a):

Poza tym, że:

{
    1 : "Marek"
}

Nie jest poprawnym JSONem, to nie sądzę, by był prostszy sposób niż zrobienie tymczasowej nowej mapy.

Możesz rozwinąć? Jednak nie umiem czytać :D

Screenshot 2021-07-07 at 13-04-48 JSON Formatter Validator.png

0

nie wydaje mi się, żeby to było możliwe bez tworzenia innej mapy. Jedyne co udało mi się wyskrobać to takie coś

package main

import (
	"encoding/json"
	"fmt"
)

type names map[int]string

func (n *names) MarshalJSON() ([]byte, error){
  delete(*n, 2)
  return json.Marshal(map[int]string(*n))
}

func main() {
	mapa := &names{
		1: "Marek",
		2: "Darek",
	}
	data, err := json.Marshal(&mapa)
	fmt.Print(err)

	fmt.Println(string(data))
}

trochę przekombinowane, ale możesz sobie wybierać które klucze się pojawiają a które nie :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1