Solved

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

Posted on 2016-08-14
3
73 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 54

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 54

Expert Comment

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

Featured Post

Courses: Start Training Online With Pros, Today

Brush up on the basics or master the advanced techniques required to earn essential industry certifications, with Courses. Enroll in a course and start learning today. Training topics range from Android App Dev to the Xen Virtualization Platform.

Question has a verified solution.

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

Password hashing is better than message digests or encryption, and you should be using it instead of message digests or encryption.  Find out why and how in this article, which supplements the original article on PHP Client Registration, Login, Logo…
FAQ pages provide a simple way for you to supply and for customers to find answers to the most common questions about your company. Here are six reasons why your company website should have a FAQ page
Explain concepts important to validation of email addresses with regular expressions. Applies to most languages/tools that uses regular expressions. Consider email address RFCs: Look at HTML5 form input element (with type=email) regex pattern: T…
The viewer will learn how to count occurrences of each item in an array.

785 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