私はjsonから価値を得ようといくつかの問題を抱えています。まず、私はjsonの配列を持ち、それぞれが名前(atributo)、類似性(これについては忘れています)、そして最後にキーと値を持つvaloresという名前の配列(chave = key/valor = value)を持っています。正しい値を得るためのより良い方法
私は多くのケースがあり、それぞれのケースにはこの例のような値があります。私が望むのは、私のケースの鍵を使ってバロアレスの価値を取ることです。
私は2つのforを使用しています.1つは右のatributoを探し、もう1つは正しい鍵を見つけることです。これを行うのが簡単な方法はありますか?必要ならば、私はこのjsonスキーマを改造することができます。
マイ配列:
[
{
"atributo": "date",
"similaridade": "Sim",
"valores": [
{"chave": "Desconhecido", "valor": "?"},
{"chave": "Abril", "valor": "0"},
{"chave": "Maio", "valor": "1"},
{"chave": "Junho", "valor": "2"},
{"chave": "Julho", "valor": "3"},
{"chave": "Agosto", "valor": "4"},
{"chave": "Setembro", "valor": "5"},
{"chave": "Outubro", "valor": "6"}
]
},
{
"atributo": "plantStand",
"similaridade": "Não",
"valores": [
{"chave": "Desconhecido", "valor": "?"},
{"chave": "Normal", "valor": "0"},
{"chave": "lt-normal", "valor": "1"}
]
},
{
"atributo": "precip",
"similaridade": "Não",
"valores": [
{"chave": "Desconhecido", "valor": "?"},
{"chave": "lt-normal", "valor": "0"},
{"chave": "Normal", "valor": "1"},
{"chave": "gt-normal", "valor": "2"}
]
},
{
"atributo": "temp",
"similaridade": "Não",
"valores": [
{"chave": "Desconhecido", "valor": "?"},
{"chave": "lt-norm", "valor": "0"},
{"chave": "norm", "valor": "1"},
{"chave": "gt-norm", "valor": "2"}
]
},
{
"atributo": "hail",
"similaridade": "Não",
"valores": [
{"chave": "Desconhecido", "valor": "?"},
{"chave": "Yes", "valor": "0"},
{"chave": "No", "valor": "1"}
]
},
{
"atributo": "cropHist",
"similaridade": "Sim",
"valores": [
{"chave": "Desconhecido", "valor": "?"},
{"chave": "diff-1st-yr", "valor": "0"},
{"chave": "same-1st-yr", "valor": "1"},
{"chave": "same-lst-two-yrs", "valor": "2"},
{"chave": "same-lst-sev-yrs", "valor": "3"}
]
},
{
"atributo": "areaDamaged",
"similaridade": "Sim",
"valores": [
{"chave": "Desconhecido", "valor": "?"},
{"chave": "scattered", "valor": "0"},
{"chave": "low-areas", "valor": "1"},
{"chave": "upper-areas", "valor": "2"},
{"chave": "whole-field", "valor": "3"}
]
},
{
"atributo": "severity",
"similaridade": "Sim",
"valores": [
{"chave": "Desconhecido", "valor": "?"},
{"chave": "Minor", "valor": "0"},
{"chave": "pot-severe", "valor": "1"},
{"chave": "severe", "valor": "2"}
]
},
{
"atributo": "seedTmt",
"similaridade": "Não",
"valores": [
{"chave": "Desconhecido", "valor": "?"},
{"chave": "none", "valor": "0"},
{"chave": "fungicida", "valor": "1"},
{"chave": "Outros", "valor": "2"}
]
},
{
"atributo": "germination",
"similaridade": "Sim",
"valores": [
{"chave": "Desconhecido", "valor": "?"},
{"chave": "90-100%", "valor": "0"},
{"chave": "80-89%", "valor": "1"},
{"chave": "lt-80%", "valor": "2"}
]
},
{
"atributo": "plantGrowth",
"similaridade": "Não",
"valores": [
{"chave": "Desconhecido", "valor": "?"},
{"chave": "Norm", "valor": "0"},
{"chave": "Abnorm", "valor": "1"}
]
},
{
"atributo": "leaves",
"similaridade": "Não",
"valores": [
{"chave": "Norm", "valor": "0"},
{"chave": "Abnorm", "valor": "1"}
]
},
{
"atributo": "leafspotsHalo",
"similaridade": "Não",
"valores": [
{"chave": "Desconhecido", "valor": "?"},
{"chave": "absent", "valor": "0"},
{"chave": "yellow-halos", "valor": "1"},
{"chave": "no-yellow-halos", "valor": "2"}
]
},
{
"atributo": "leafspotsMarg",
"similaridade": "Não",
"valores": [
{"chave": "Desconhecido", "valor": "?"},
{"chave": "w-s-marg", "valor": "0"},
{"chave": "no-w-s-marg", "valor": "1"},
{"chave": "dna", "valor": "2"}
]
},
{
"atributo": "leafspotSize",
"similaridade": "Não",
"valores": [
{"chave": "Desconhecido", "valor": "?"},
{"chave": "lt-1/8", "valor": "0"},
{"chave": "gt-1/8", "valor": "1"},
{"chave": "dna", "valor": "2"}
]
},
{
"atributo": "leafShread",
"similaridade": "Não",
"valores": [
{"chave": "Desconhecido", "valor": "?"},
{"chave": "absent", "valor": "0"},
{"chave": "Present", "valor": "1"}
]
},
{
"atributo": "leafMalf",
"similaridade": "Não",
"valores": [
{"chave": "Desconhecido", "valor": "?"},
{"chave": "Absent", "valor": "0"},
{"chave": "Present", "valor": "1"}
]
},
{
"atributo": "leafMild",
"similaridade": "Não",
"valores": [
{"chave": "Desconhecido", "valor": "?"},
{"chave": "Absent", "valor": "0"},
{"chave": "Upper-surf", "valor": "1"},
{"chave": "Lower-surf", "valor": "2"}
]
},
{
"atributo": "stem",
"similaridade": "Não",
"valores": [
{"chave": "Desconhecido", "valor": "?"},
{"chave": "Norm", "valor": "0"},
{"chave": "Abnorm", "valor": "1"}
]
},
{
"atributo": "lodging",
"similaridade": "Sim",
"valores": [
{"chave": "Desconhecido", "valor": "?"},
{"chave": "Yes", "valor": "0"},
{"chave": "No", "valor": "1"}
]
},
{
"atributo": "stemCankers",
"similaridade": "Sim",
"valores": [
{"chave": "Desconhecido", "valor": "?"},
{"chave": "Absent", "valor": "0"},
{"chave": "below-soil", "valor": "1"},
{"chave": "Above-soil", "valor": "2"},
{"chave": "Above-sec-nde", "valor": "3"}
]
},
{
"atributo": "cankerLesion",
"similaridade": "Não",
"valores": [
{"chave": "Desconhecido", "valor": "?"},
{"chave": "dna", "valor": "0"},
{"chave": "Brown", "valor": "1"},
{"chave": "dk-brown-blk", "valor": "2"},
{"chave": "tan", "valor": "3"}
]
},
{
"atributo": "fruitingBodies",
"similaridade": "Não",
"valores": [
{"chave": "Desconhecido", "valor": "?"},
{"chave": "Absent", "valor": "0"},
{"chave": "Present", "valor": "1"}
]
},
{
"atributo": "externalDecay",
"similaridade": "Não",
"valores": [
{"chave": "Desconhecido", "valor": "?"},
{"chave": "Absent", "valor": "0"},
{"chave": "firm-and-dry", "valor": "1"},
{"chave": "watery", "valor": "2"}
]
},
{
"atributo": "mycelium",
"similaridade": "Não",
"valores": [
{"chave": "Desconhecido", "valor": "?"},
{"chave": "Absent", "valor": "0"},
{"chave": "Present", "valor": "1"}
]
},
{
"atributo": "intDiscolor",
"similaridade": "Não",
"valores": [
{"chave": "Desconhecido", "valor": "?"},
{"chave": "None", "valor": "0"},
{"chave": "Brown", "valor": "1"},
{"chave": "Black", "valor": "2"}
]
},
{
"atributo": "sclerotia",
"similaridade": "Não",
"valores": [
{"chave": "Desconhecido", "valor": "?"},
{"chave": "Absent", "valor": "0"},
{"chave": "Present", "valor": "1"}
]
},
{
"atributo": "fruitPods",
"similaridade": "Não",
"valores": [
{"chave": "Desconhecido", "valor": "?"},
{"chave": "Norm", "valor": "0"},
{"chave": "Diseased", "valor": "1"},
{"chave": "few-present", "valor": "2"},
{"chave": "dna", "valor": "3"}
]
},
{
"atributo": "fruitSpots",
"similaridade": "Não",
"valores": [
{"chave": "Desconhecido", "valor": "?"},
{"chave": "Absent", "valor": "0"},
{"chave": "Colored", "valor": "1"},
{"chave": "Brown-w/blk-specks", "valor": "2"},
{"chave": "Distort", "valor": "3"},
{"chave": "dna", "valor": "4"}
]
},
{
"atributo": "seed",
"similaridade": "Não",
"valores": [
{"chave": "Desconhecido", "valor": "?"},
{"chave": "Norm", "valor": "0"},
{"chave": "Abnorm", "valor": "1"}
]
},
{
"atributo": "moldGrowth",
"similaridade": "Não",
"valores": [
{"chave": "Desconhecido", "valor": "?"},
{"chave": "Absent", "valor": "0"},
{"chave": "Present", "valor": "1"}
]
},
{
"atributo": "seedDiscolor",
"similaridade": "Não",
"valores": [
{"chave": "Desconhecido", "valor": "?"},
{"chave": "Absent", "valor": "0"},
{"chave": "Present", "valor": "1"}
]
},
{
"atributo": "seedSize",
"similaridade": "Não",
"valores": [
{"chave": "Desconhecido", "valor": "?"},
{"chave": "Norm", "valor": "0"},
{"chave": "lt-norm", "valor": "1"}
]
},
{
"atributo": "shriveling",
"similaridade": "Não",
"valores": [
{"chave": "Desconhecido", "valor": "?"},
{"chave": "Absent", "valor": "0"},
{"chave": "Present", "valor": "1"}
]
},
{
"atributo": "roots",
"similaridade": "Não",
"valores": [
{"chave": "Desconhecido", "valor": "?"},
{"chave": "Norm", "valor": "0"},
{"chave": "Rotted", "valor": "1"},
{"chave": "galls-cysts", "valor": "2"}
]
}
]
サンプルケース:
{
"caso": 1,
"doenca": "diaporthe-stem-canker",
"areaDamaged": "low-areas",
"cankerLesion": "Brown",
"cropHist": "same-1st-yr",
"date": "Outubro",
"externalDecay": "firm-and-dry",
"fruitSpots": "dna",
"fruitingBodies": "Present",
"fruitPods": "Norm",
"germination": "90-100%",
"hail": "Yes",
"intDiscolor": "None",
"leafMalf": "Absent",
"leafMild": "Absent",
"leafShread": "absent",
"leafspotsHalo": "absent",
"leafspotSize": "dna",
"leafspotsMarg": "dna",
"leaves": "Abnorm",
"lodging": "No",
"moldGrowth": "Absent",
"mycelium": "Absent",
"plantGrowth": "Abnorm",
"plantStand": "Normal",
"precip": "gt-normal",
"roots": "Norm",
"sclerotia": "Absent",
"seed": "Norm",
"seedDiscolor": "Absent",
"seedSize": "Norm",
"seedTmt": "none",
"severity": "pot-severe",
"shriveling": "Absent",
"stem": "Abnorm",
"stemCankers": "Above-sec-nde",
"temp": "norm"
}
だから私はareaDamagedている:低領域は、私がareaDamagedからの低領域の値を取ることにしたいです。誰でも良い方法を知っていますか?
うわー、ありがとう!正直言って私は実装が簡単な方法を探していましたが、あなたの答えは実装と効率面では最高です。本当にありがとう!そして、ええ、私は300回以上これにアクセスするので、それは私のために良いでしょう –
助けになることを喜んで:]幸運! – Avius