0

I am trying to build a json in my project but have it recreating it's self for each variable. Please could someone show me how i can get all in the same group?

Classes:

    public class GetClient_Secrets
    {
        public List<Client_Secret> web {get; set;}
    }
    public class Client_Secret
    {
        public string auth_uri {get; set;}
        public string client_secret {get; set;}
        public string token_uri {get; set;}
        public string client_email {get; set;}
        public string redirect_uris {get; set;}
        public string client_x509_cert_url {get; set;}
        public string client_id {get; set;}
        public string auth_provider_x509_cert_url {get; set;}
        public string javascript_origins {get; set;}
    }

How i build my Json:

    var jsonResult = new GetClient_Secrets
            {
                web = new List<Client_Secret>
                {
                    new Client_Secret {auth_uri = "https://accounts.google.com/o/oauth2/auth1"}, 
                    new Client_Secret {client_secret = "jCTUEYcUUKFnbFqLuPmnC-ZO2"},
                    new Client_Secret {token_uri = "https://accounts.google.com/o/oauth2/token3"},
                    new Client_Secret {client_email = "789526175471-mh3o48ooi8va0mr0lke62pvqnf3kd2fj@developer.gserviceaccount.com"},
                    new Client_Secret {redirect_uris = "http://www.hlhstp.com/oauth2callback5"},
                    new Client_Secret {client_x509_cert_url = "https://www.googleapis.com/robot/v1/metadata/x509/789526175471-mh3o48ooi8va0mr0lke62pvqnf3kd2fj@developer.gserviceaccount.com"},
                    new Client_Secret {client_id = "789526175471-mh3o48ooi8va0mr0lke62pvqnf3kd2fj.apps.googleusercontent.com"},
                    new Client_Secret {auth_provider_x509_cert_url = "https://www.googleapis.com/oauth2/v1/certs6"},
                    new Client_Secret {javascript_origins = "http://www.hlhstp.com"}
                }
            };
            return JsonConvert.SerializeObject(jsonResult);//.Dump();

Result:

{
    "web": [
        {
            "auth_uri": "https://accounts.google.com/o/oauth2/auth1",
            "client_secret": null,
            "token_uri": null,
            "client_email": null,
            "redirect_uris": null,
            "client_x509_cert_url": null,
            "client_id": null,
            "auth_provider_x509_cert_url": null,
            "javascript_origins": null
        },
        {
            "auth_uri": null,
            "client_secret": "jCTUEYcUUKFnbFqLuPmnC-ZO2",
            "token_uri": null,
            "client_email": null,
            "redirect_uris": null,
            "client_x509_cert_url": null,
            "client_id": null,
            "auth_provider_x509_cert_url": null,
            "javascript_origins": null
        },
        {
            "auth_uri": null,
            "client_secret": null,
            "token_uri": "https://accounts.google.com/o/oauth2/token3",
            "client_email": null,
            "redirect_uris": null,
            "client_x509_cert_url": null,
            "client_id": null,
            "auth_provider_x509_cert_url": null,
            "javascript_origins": null
        },
        {
            "auth_uri": null,
            "client_secret": null,
            "token_uri": null,
            "client_email": "789526175471-mh3o48ooi8va0mr0lke62pvqnf3kd2fj@developer.gserviceaccount.com",
            "redirect_uris": null,
            "client_x509_cert_url": null,
            "client_id": null,
            "auth_provider_x509_cert_url": null,
            "javascript_origins": null
        },
        {
            "auth_uri": null,
            "client_secret": null,
            "token_uri": null,
            "client_email": null,
            "redirect_uris": "http://www.hlhstp.com/oauth2callback5",
            "client_x509_cert_url": null,
            "client_id": null,
            "auth_provider_x509_cert_url": null,
            "javascript_origins": null
        },
        {
            "auth_uri": null,
            "client_secret": null,
            "token_uri": null,
            "client_email": null,
            "redirect_uris": null,
            "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/789526175471-mh3o48ooi8va0mr0lke62pvqnf3kd2fj@developer.gserviceaccount.com",
            "client_id": null,
            "auth_provider_x509_cert_url": null,
            "javascript_origins": null
        },
        {
            "auth_uri": null,
            "client_secret": null,
            "token_uri": null,
            "client_email": null,
            "redirect_uris": null,
            "client_x509_cert_url": null,
            "client_id": "789526175471-mh3o48ooi8va0mr0lke62pvqnf3kd2fj.apps.googleusercontent.com",
            "auth_provider_x509_cert_url": null,
            "javascript_origins": null
        },
        {
            "auth_uri": null,
            "client_secret": null,
            "token_uri": null,
            "client_email": null,
            "redirect_uris": null,
            "client_x509_cert_url": null,
            "client_id": null,
            "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs6",
            "javascript_origins": null
        },
        {
            "auth_uri": null,
            "client_secret": null,
            "token_uri": null,
            "client_email": null,
            "redirect_uris": null,
            "client_x509_cert_url": null,
            "client_id": null,
            "auth_provider_x509_cert_url": null,
            "javascript_origins": "http://www.hlhstp.com"
        }
    ]
}

3 Answers 3

1

You're creating an object for every field. You should initialize all fields in one object.

var jsonResult = new GetClient_Secrets
        {
            web = new List<Client_Secret>
            {
                new Client_Secret {
                    auth_uri = "https://accounts.google.com/o/oauth2/auth1",
                    client_secret = "jCTUEYcUUKFnbFqLuPmnC-ZO2",
                    token_uri = "https://accounts.google.com/o/oauth2/token3",
                    client_email = "789526175471-mh3o48ooi8va0mr0lke62pvqnf3kd2fj@developer.gserviceaccount.com",
                    redirect_uris = "http://www.hlhstp.com/oauth2callback5",
                    client_x509_cert_url = "https://www.googleapis.com/robot/v1/metadata/x509/789526175471-mh3o48ooi8va0mr0lke62pvqnf3kd2fj@developer.gserviceaccount.com",
                    client_id = "789526175471-mh3o48ooi8va0mr0lke62pvqnf3kd2fj.apps.googleusercontent.com",
                    auth_provider_x509_cert_url = "https://www.googleapis.com/oauth2/v1/certs6",
                    javascript_origins = "http://www.hlhstp.com"
                }
            }
        };
return JsonConvert.SerializeObject(jsonResult);//.Dump();
Sign up to request clarification or add additional context in comments.

Comments

1

You're repeatedly calling the constructor, each time passing one different initialization parameter. Call the constructor once, passing in all the initialization parameters.

var jsonResult = new GetClient_Secrets
{
    web = new List<Client_Secret>
    {
        new Client_Secret {
            auth_uri = "https://accounts.google.com/o/oauth2/auth1"}, 
            client_secret = "jCTUEYcUUKFnbFqLuPmnC-ZO2",
            token_uri = "https://accounts.google.com/o/oauth2/token3",
            client_email = "789526175471-mh3o48ooi8va0mr0lke62pvqnf3kd2fj@developer.gserviceaccount.com",
            redirect_uris = "http://www.hlhstp.com/oauth2callback5",
            client_x509_cert_url = "https://www.googleapis.com/robot/v1/metadata/x509/789526175471-mh3o48ooi8va0mr0lke62pvqnf3kd2fj@developer.gserviceaccount.com",
            client_id = "789526175471-mh3o48ooi8va0mr0lke62pvqnf3kd2fj.apps.googleusercontent.com",
            auth_provider_x509_cert_url = "https://www.googleapis.com/oauth2/v1/certs6",
            javascript_origins = "http://www.hlhstp.com"
        }
    }
};
return JsonConvert.SerializeObject(jsonResult);//.Dump();

That's still producing a list, even though it has only one entry. If you want just one entry, get rid of the list as well, but I figure it's required for your GetClient_Secrets object's initializer.

Comments

1

The problem you have is that you are creating a new Client_Secret for each property, what you want to do is just create one and set all the properties:

          web = new List<Client_Secret>
            {
                new Client_Secret
               {
                    auth_uri = "https://accounts.google.com/o/oauth2/auth1", 
                    client_secret = "jCTUEYcUUKFnbFqLuPmnC-ZO2",
                    token_uri = "https://accounts.google.com/o/oauth2/token3",
                    client_email = "789526175471-mh3o48ooi8va0mr0lke62pvqnf3kd2fj@developer.gserviceaccount.com",
                    redirect_uris = "http://www.hlhstp.com/oauth2callback5",
                    client_x509_cert_url = "https://www.googleapis.com/robot/v1/metadata/x509/789526175471-mh3o48ooi8va0mr0lke62pvqnf3kd2fj@developer.gserviceaccount.com",
                    client_id = "789526175471-mh3o48ooi8va0mr0lke62pvqnf3kd2fj.apps.googleusercontent.com",
                    auth_provider_x509_cert_url = "https://www.googleapis.com/oauth2/v1/certs6",
                    javascript_origins = "http://www.hlhstp.com"
                }
            }

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.