0

parse this Json and Get The Values Usign Json.NET.Help Me to Find The Way To Parse. Thanks in Advance..

I am Using Json.net Dll For Parsing,Below is my Json Code and C# code to Parse, But I am Getting Error, Confuced to Get the Values From This Json File.

myjson.json:

{
"Published_DocsCount": 5,
"Public_ReadAccess": 2,
"Public_CommentAccess": 3,
"Public_WriteAccess": 2,
"Public_DocsCount": 7,
"PublicWithLink_ReadAccess": 2,
"PublicWithLink_CommentAccess": 2,
"PublicWithLink_WriteAccess": 2,
"PublicWithLink_DocsCount": 6,
"InternalCollaborators_CollaboratorsCount": 1,
"InternalCollaborators_Read": 3,
"InternalCollaborators_Comment": 0,
"InternalCollaborators_Write": 5,
"InternalCollaborators_DocsCount": 8,
"OutsideDomain_CollaboratorsCount": 6,
"OutsideDomain_Read": 6,
"OutsideDomain_Comment": 4,
"OutsideDomain_Write": 6,
"OutsideDomain_DocsCount": 16,
"Domain_ReadAccess": 3,
"Domain_CommentAccess": 2,
"Domain_WriteAccess": 2,
"Domain_DocsCount": 7,
"DomainWithLink_ReadAccess": 2,
"DomainWithLink_CommentAccess": 2,
"DomainWithLink_WriteAccess": 2,
"DomainWithLink_DocsCount": 6,
"MimeTypes": {
    "image/png": 10,
    "application/vnd.openxmlformats-officedocument.wordprocessingml.document": 9,
    "application/vnd.google-apps.spreadsheet": 8,
    "application/vnd.google-apps.document": 8,
    "application/vnd.google-apps.presentation": 6,
    "application/vnd.google-apps.drawing": 5,
    "application/vnd.google-apps.form": 1
},
"SharedToDomains": {
    "18009029392713646891": {
        "users": 1,
        "documents": 3
    },
    "neverfailbackup.biz": {
        "users": 1,
        "documents": 3
    },
    "00781621852878369984": {
        "users": 1,
        "documents": 3
    },
    "thedomainmigration.info": {
        "users": 1,
        "documents": 3
    },
    "liveonlinecloud.info": {
        "users": 1,
        "documents": 3
    },
    "domainmigration.info": {
        "users": 1,
        "documents": 1
    }
},
"SharedFromDomains": {
    "mydomainmigration.info": {
        "users": 1,
        "documents": 8
    }
}

}}

myCode:

public void getSummaryJson()
{

    string FilePath = "D:\\jsontxt.json";
    string all = "";
    StringBuilder sb = new StringBuilder();
    using (StreamReader r = new StreamReader(FilePath))
    {
        string line;                      
        while ((line = r.ReadLine()) != null)
        {
            sb.AppendLine(line);
        }         
        all = sb.ToString();
        var parsed = JObject.Parse(all);
        var container = DeserializeFromJson<List<Attributes>>(parsed[]); 
   } 

 }


 public class Attributes
 {
    [JsonProperty("MimeTypes")]
    public string MimeTypes{ get; set; }
    [JsonProperty("SharedToDomains")]
    public string SharedToDomains{ get; set; }
    [JsonProperty("SharedFromDomains")]
    public string SharedFromDomains{ get; set; }       
 }

  public class DataJsonAttributeContainer
  {
    public List<Attributes> attributes { get; set; }
  }

  public static T DeserializeFromJson<T>(string json)
  {
    T deserializedProduct = JsonConvert.DeserializeObject<T>(json);
    return deserializedProduct;
  }
2
  • "I am getting error" gives us no information. What exactly happens? Please read tinyurl.com/so-list Commented Dec 10, 2013 at 14:28
  • Actually I am Confuced How To display This Json I want All the Values From The Above File.. I got Reference From stackoverflow.com/questions/17801607/… . But they using event result instead of that i am passing string from streamreader Commented Dec 10, 2013 at 14:34

2 Answers 2

2

You have to model your type according to the JSON structure. These classes should work:

public class AttributeContainer
{
    public Dictionary<string,int> MimeTypes { get; set; }
    public Dictionary<string,Domain> SharedToDomains { get; set; }
    public Dictionary<string,Domain> SharedFromDomains { get; set; }

    public int Published_DocsCount { get; set; }
    public int Public_ReadAccess { get; set; }
    public int Public_CommentAccess { get; set; }
    public int Public_WriteAccess { get; set; }
    public int Public_DocsCount { get; set; }
    public int PublicWithLink_ReadAccess { get; set; }
    public int PublicWithLink_CommentAccess { get; set; }
    public int PublicWithLink_WriteAccess { get; set; }
    public int PublicWithLink_DocsCount { get; set; }
    public int InternalCollaborators_CollaboratorsCount { get; set; }
    public int InternalCollaborators_Read { get; set; }
    public int InternalCollaborators_Comment { get; set; }
    public int InternalCollaborators_Write { get; set; }
    public int InternalCollaborators_DocsCount { get; set; }
    public int OutsideDomain_CollaboratorsCount { get; set; }
    public int OutsideDomain_Read { get; set; }
    public int OutsideDomain_Comment { get; set; }
    public int OutsideDomain_Write { get; set; }
    public int OutsideDomain_DocsCount { get; set; }
    public int Domain_ReadAccess { get; set; }
    public int Domain_CommentAccess { get; set; }
    public int Domain_WriteAccess { get; set; }
    public int Domain_DocsCount { get; set; }
    public int DomainWithLink_ReadAccess { get; set; }
    public int DomainWithLink_CommentAccess { get; set; }
    public int DomainWithLink_WriteAccess { get; set; }
    public int DomainWithLink_DocsCount { get; set; }
}

public class Domain 
{
    public int Users { get; set; }
    public int Documents { get; set; }
}

You can also use File.ReadAllText method:

string data = File.ReadAllText("D:\\jsontxt.json");

Use AttributeContainer type for deserialization.

var container = DeserializeFromJson<AttributeContainer>(data); 
Sign up to request clarification or add additional context in comments.

2 Comments

I wrote the same thing, almost, but you beat me to the punch. As I have nothing to add...+1!
Ufuk Hacıoğulları: Hi.Thank You!Its Working.
0

You can use this website to check your JSON data:

http://jsoneditoronline.org/index.html

I copied your JSON data to the website and it seems like you have forgotten a '}' character at the end:

{
"Published_DocsCount": 5,
"Public_ReadAccess": 2,
"Public_CommentAccess": 3,
"Public_WriteAccess": 2,
"Public_DocsCount": 7,
"PublicWithLink_ReadAccess": 2,
"PublicWithLink_CommentAccess": 2,
"PublicWithLink_WriteAccess": 2,
"PublicWithLink_DocsCount": 6,
"InternalCollaborators_CollaboratorsCount": 1,
"InternalCollaborators_Read": 3,
"InternalCollaborators_Comment": 0,
"InternalCollaborators_Write": 5,
"InternalCollaborators_DocsCount": 8,
"OutsideDomain_CollaboratorsCount": 6,
"OutsideDomain_Read": 6,
"OutsideDomain_Comment": 4,
"OutsideDomain_Write": 6,
"OutsideDomain_DocsCount": 16,
"Domain_ReadAccess": 3,
"Domain_CommentAccess": 2,
"Domain_WriteAccess": 2,
"Domain_DocsCount": 7,
"DomainWithLink_ReadAccess": 2,
"DomainWithLink_CommentAccess": 2,
"DomainWithLink_WriteAccess": 2,
"DomainWithLink_DocsCount": 6,
"MimeTypes": {
    "image/png": 10,
    "application/vnd.openxmlformats-officedocument.wordprocessingml.document": 9,
    "application/vnd.google-apps.spreadsheet": 8,
    "application/vnd.google-apps.document": 8,
    "application/vnd.google-apps.presentation": 6,
    "application/vnd.google-apps.drawing": 5,
    "application/vnd.google-apps.form": 1
},
"SharedToDomains": {
    "18009029392713646891": {
        "users": 1,
        "documents": 3
    },
    "neverfailbackup.biz": {
        "users": 1,
        "documents": 3
    },
    "00781621852878369984": {
        "users": 1,
        "documents": 3
    },
    "thedomainmigration.info": {
        "users": 1,
        "documents": 3
    },
    "liveonlinecloud.info": {
        "users": 1,
        "documents": 3
    },
    "domainmigration.info": {
        "users": 1,
        "documents": 1
    }
},
"SharedFromDomains": {
    "mydomainmigration.info": {
        "users": 1,
        "documents": 8
    }
}
}

2 Comments

He had this in his post past the end of the code formatting block. I don't think this was his problem.
@TimS. I am Having Valid Json File Some Argument Missed I just Update Now .. I want Parse these Values using C#

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.