Any better way to read Json array
Json.Net has support for collections built-in. You should be able to use the generic version of DeserializeObject like this:
private Dictionary&lt;string, bool&gt; GetWorkflowNames()
{
    var appDataFolder = ConfigurationMgr.GetAppPath(&quot;App_Data&quot;);
    var jsonFilePath = Path.Combine(appDataFolder, &quot;WorkflowNames.json&quot;);
    var jsonString = System.IO.File.ReadAllText(jsonFilePath);
    var workflowNames = JsonConvert.DeserializeObject&lt;List&lt;string&gt;&gt;(jsonString);
    return workflowNames.ToDictionary(name =&gt; name, _ =&gt; false);
}

There are still a few things I would clean up in your code:
Add a using for System.IO and use File without the namespace. You could also use a static using like this using static System.IO.File; and access ReadAllText directly but I generally dislike this unless the class is very focussed and heavily using File.
You'll notice that I introduced a local variable jsonString as I don't like hiding the file access in the call to deserialize the json. I try to stick rigidly to one thing happening per line. Simple and clear code is best when you want to maintain it 2 years later.
I'd also recommend using .ToDictionary as it shortens the code and makes it very obvious what you're doing. Having said that, I would have this return an IEnumerable&lt;string&gt; instead of a dictionary. It's not clear why this returns a dictionary and GetWorkflowNames sounds like it would be perfectly reasonable to return the list.