Já jsem vytváření webové aplikace, která používá Go server sloužit dat do aplikace Reagovat.
Při výstavbě můj server, sledoval jsem návod poskytována Jít docs (https://golang.org/doc/tutorial/web-service-gin). Můj kód je velmi podobný kódu, a jsem se dostat očekávané výsledky, když jsem používat curl.
[
{
"id":0,
"date":"2021-11-21T12:00:00Z",
"rentedTo":"Bob",
"rentedBy":"Jim"
},
//etc...
Když jsem se použít Reagovat fetch API, nicméně, moje výsledky v nečekané podobě.
fetch('http://localhost:8080/rentals')
.then((response)=> {
if (response.ok) {
return response.json();
}
throw response;
.then((jsonArr) => {
handleRentalsData(jsonArr)
})
.catch((error) => {
console.error("Error fetching data: ", error);
});
Když Jsem console.log(jsonArr)
prohlížeč hlásí následující:
Array(3) [ {...},{...},{...} ]
//Expanding this object via the console shows the following information:
---> 0: Object { id: 0, date: "2021-11-21T12:00:00Z", rentedTo: "Bob", ... }
---> 1: Object { id: 1, date: "2021-11-22T12:00:00Z", rentedTo: "Bob", ... }
---> 2: Object { id: 2, date: "2021-11-23T12:00:00Z", rentedTo: "Bob", ... }
Tyto indexy (a prohlížeče štítku) je uvedeno, že data byla nyní v podobě Pole, bral jsem to jako takovou.
Pokusil jsem se smyčka přes toto pole analyzovat json řetězce uvnitř, ale JSON.parse(data)
produkuje pouze číslice (0, 1 a 2 resp.), spíše než k produkci předmětů, tak, jak jsem očekávala.
for (const json in jsonArr){
console.log(typeof json); //string
const rentalObj = JSON.parse(json);
console.log(typeof rentalObj); //number
console.log(rentalObj); //0, 1, and 2 respectively
console.log(rentalObj.date); //undefined, because rentalObj is now a number.
}
Jsem udělal nějaké vyhledávání, a slyšel, že indexy pole data přišel, může být příčinou problému, tak jsem se snažil analyzovat s reviver funkce, stejně.
for (const json in jsonArr){
console.log(typeof json); //string
const rentalObj = JSON.parse(json, (key, value) => {
console.log(key); //<empty string>
console.log(value); //0, 1, and 2
return(value);
});
console.log(typeof rentalObj); //number
console.log(rentalObj); //0, 1, and 2 respectively
console.log(rentalObj.date); //undefined
}
Snaží JSON.parse(jsonArr)
vyvolá chybu, jak se očekávalo. Jsem v koncích. Proč to parse(index n) číslo? Jak mohu extrahovat Objekty uvnitř Pole, při analýze (nebo printing) struny uvnitř pole produkuje pouze čísla?