0

I'm having an issue looping some JSON code, my JSON looks like:

{
    "mode_1": [
        "line_1",
        "line_2",
        "etc ..."
    ]
}

I have tried with my code:

var json = Helpers.GetJsonTemplateToUse(_currentSite, "site_json_1");
dynamic array = JsonConvert.DeserializeObject(json["mode_1"]);
foreach (var macro in array) 
{
   Helpers.ReturnMessage(macro);
}

The json var queries and returns the JSON code to parse, then DeserializeObject and foreach but i think i have done it wrong, I don't get any erros as such but the ReturnMessage function does not output any lines, any help would be appreciated.

5
  • try the following : string[] modes = JsonConvert.DeserializeObject<string[]>(json["mode_1"]); Commented Jan 25, 2021 at 21:11
  • it seems you just need to do foreach (string macro in json["mode_1"]) for it to work. Commented Jan 25, 2021 at 21:13
  • What is returned by Helpers.GetJsonTemplateToUse? Commented Jan 25, 2021 at 21:27
  • Helpers.GetJsonTemplateToUse just returns the JSON code like above. Commented Jan 25, 2021 at 21:57
  • What is returned by json["mode_1"], then? It looks like you're parsing half your JSON in one spot and another half in another spot. Commented Jan 25, 2021 at 22:32

1 Answer 1

1

You probably do not get any error message because you are using dynamic

Try:

var array = JsonConvert.DeserializeObject<YourModel>(json["mode_1"]);

YourModel should be your custom Json object class

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.