Solved

How to use JSON file as data storage in Universal Windows 10 App?

Posted on 2016-08-14
3
88 Views
Last Modified: 2016-08-15
Hello,

I am a newbie in working with JSON files. I am developing a Universal Windows 10 application that calls data from various APIs and displays them in a list. The data needs to be stored in a JSON file and then be displayed from the file. Each time the application is run, the API data is to be called and compared with the data that is present in the storage file to check whether the values are going up or down, and then overwrite parts of the JSON file with new data.

I have written a code and it is reading the data from the JSON file. However, the part for writing the data to the file is not working. When the application is run, it is shutting down with the following error "Access to the path 'F:\Shared\Development\BitcoinExchangeApp\BitcoinExchangeApp\bin\x86\Debug\AppX\ExchangeData.json' is denied."

Relevant part of my code is given below:
______________________________________________________________________
newdata = olddata;                                                             //olddata is the object which reads data from JSON file

            int j = 0;                                                                     //newdata is the object which is to be written to the JSON file

            foreach(var exdata in DatafromAPI)
            {                
                newdata.data[j].volume[0] = exdata.vol;        //This is just for testing. The indexes of volume, last, low and high
                newdata.data[j].last[0] = exdata.last;              //require to be edited with conditions.
                newdata.data[j].low[0] = exdata.low;          
                newdata.data[j].high[0] = exdata.high;
               
                i++;
            }

            File.WriteAllText(@"ExchangeData.json", JsonConvert.SerializeObject(newdata));
            using (StreamWriter file = File.CreateText(@"ExchangeData.json"))
            {
                JsonSerializer serializer = new JsonSerializer();
                serializer.Serialize(file, newdata);
            }
______________________________________________________________________
Here is the part of the JSON file that I created:
______________________________________________________________________
{
  "file": "exdata",
  "data":
  [
    {
      "exname": "CEX.IO",
      "currencies": [ "LTC", "USD", "EUR", "ETH" ],
      "volume": [ "0.0", "0.0", "0.0", "0.0" ],
      "last": [ "0.0", "0.0", "0.0", "0.0" ],
      "low": [ "0.0", "0.0", "0.0", "0.0" ],
      "high": [ "0.0", "0.0", "0.0", "0.0" ]
    },
    {
      "exname": "OKCoin",
      "currencies": [ "LTC", "USD" ],
      "volume": [ "0.0", "0.0" ],
______________________________________________________________________
And here are the classes for de/serializing the JSON:
______________________________________________________________________
public class DetailsforExchange
    {
        public string exname { get; set; }
        public List<string> currencies { get; set; }
        public List<string> volume { get; set; }
        public List<string> last { get; set; }
        public List<string> low { get; set; }
        public List<string> high { get; set; }
    }

    public class DatabaseofExchanges
    {
        public string file { get; set; }
        public List<DetailsforExchange> data { get; set; }
    }
______________________________________________________________________

Help is much needed.

Thanks and regards.
0
Comment
Question by:Soumen Roy
  • 2
3 Comments
 
LVL 56

Accepted Solution

by:
Julian Hansen earned 500 total points
ID: 41755969
This looks like a permissions problem. Check the permissions of your folder you are trying to write to.
0
 

Author Closing Comment

by:Soumen Roy
ID: 41756416
Thanks, it worked :-)
0
 
LVL 56

Expert Comment

by:Julian Hansen
ID: 41756479
You are welcome.
0

Featured Post

On Demand Webinar - Networking for the Cloud Era

This webinar discusses:
-Common barriers companies experience when moving to the cloud
-How SD-WAN changes the way we look at networks
-Best practices customers should employ moving forward with cloud migration
-What happens behind the scenes of SteelConnect’s one-click button

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Because your company can’t afford for you to make SEO mistakes, you’ll want to ensure you’re taking the right steps each and every time you post a new piece of content. This list of optimization do’s and don’ts can help you become an SEO wizard.
When crafting your “Why Us” page, there are a plethora of pitfalls to avoid. Follow these five tips, and you’ll be well on your way to creating an effective page.
The viewer will learn how to dynamically set the form action using jQuery.
The viewer will get a basic understanding of what section 508 compliance can entail, learn about skip navigation links, alt text, transcripts, and font size controls.

733 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question