javascript - Hur man parser JSON med slumpmässiga fält i Typescript och React.js


Har Json-sträng med slumpmässiga fält i Typescript (jag vet inte vilka typer av fält som finns i json-sträng eller deras typer). Vill parsa json-sträng till ett objekt med standardtyp för fälten, till exempel string.

Parsa så här: let values=JSON.parse(this.props.values!)

Får ett fel när jag arbetar med React.js på grund av typen unknown. Kan inte heller fördefiniera interface eftersom jag inte vet vad som finns i json string

Object.entries(values).map(([key, value]) => {
                renderValues = (
                    <>
                        <div className="col-1 text-left p-2" ></div>
                        <div className="col-2 text-right p-2" >{key}</div>
                        <div className="col-9 text-left p-2" >{value}</div>
                    </>)
            })

Har fel: Typen 'unknown' kan inte tilldelas typen 'ReactNode'. Typen 'unknown' kan inte tilldelas typen 'ReactPortal'.ts(2322) index.d.ts(1244, 9): Den förväntade typen kommer från egenskapen 'children' som deklareras här på typen 'DetailedHTMLProps'

Hur ger man i TypeScript, när man parsar json string till ett objekt, objektfält standardtyp eller kastar objektfält till standardtyp?

Svar #1

Som kommenterat; kan du prova följande:

renderValues = Object.entries(values).map(
  ([key: string, value: string]) => (
    <>
      <div className="col-1 text-left p-2"></div>
      <div className="col-2 text-right p-2">{key}</div>
      <div className="col-9 text-left p-2">{value}</div>
    </>
  )
);

Och snälla läs länken jag postade tidigare eftersom du inte använder Array.prototype.map på rätt sätt.

Relaterade artiklar