Hi all,
I have a moderately complicated JSON object. A sample looks like:
```
{
"118_192": {
"Cloverdale P": {
"sum_lane_miles": 0,
"sum_single_unit_mt": 0,
"sum_vmt": 57,
"sum_combination_mt": 0
}
}
}
```
Thousands of such top level entries, with a variable number of secondary entries, and two different types of tertiary entries depending on the "type" of the second entry. I'm debating between a simple nested dict approach, and a more complicated nested dict of two alternative object types, but I can't get past Go with the repl in order to test out my ideas.
First, the most simple case, I can decode this with nested Dictionaries
What I did in the repl is:
```
import Json.Decode as Json exposing (..)
import Dict exposing (..)
inputString = """{ "118_192": { "Cloverdale P": { "sum_lane_miles": 0, "sum_single_unit_mt": 0, "sum_vmt": 57, "sum_combination_mt": 0 }, "CO P": { "sum_lane_miles": 0, "sum_single_unit_mt": 0, "sum_vmt": 43, "sum_combination_mt": 0 } }}"""
gridVolumes = dict ( dict (dict float))
dataDict = decodeString gridVolumes inputString
```
But that last line is a wild guess. What I want to do is get "something" I can use as a dictionary, but Elm is giving me two things...a Result object and the dictionary.
```
> dataDict
Ok (Dict.fromList [("118_192",Dict.fromList [("CO P",Dict.fromList [("sum_combination_mt",0),("sum_lane_miles",0),("sum_single_unit_mt",0),("sum_vmt",43)]),("Cloverdale P",Dict.fromList [("sum_combination_mt",0),("sum_lane_miles",0),("sum_single_unit_mt",0),("sum_vmt",57)])])])
: Result.Result
String
(Dict.Dict String (Dict.Dict String (Dict.Dict String Float)))
>
```
How do I strip off the "Result" in the repl so I can touch the dictionary and play with various types of Dict.get commands?
Obvious to me that I'm just not getting a fundamental concept of the language, but I can't find the right point of view so far in the docs I've read...for example, the JSON help page (
https://guide.elm-lang.org/interop/json.html) never actually seems to *assign* the result of running a JSON parser to a value, and the JSON library documentation has fragements of code, but no complete worked examples one can reproduce in the repl.
Any advice or pointers to docs I should read or reread would be appreciated. Or just a simple "you're doing X wrong do Y instead to get access to the Dict String (Dict String (Dict String Float))) thing" would be welcome too!
Regards,
James