v-model prints [object Object] instead of the JSON string
up vote
0
down vote
favorite
I have a JSON object that I want users to edit.
When I print it plainly, like json
I get the string, "car":"color":"blue"
. But when I print it in any sort of editable field, like
<input v-model="json">
I get this:
Things I've tried:
html:v-model
/html:value
- Empty input<textarea v-model="json">json</textarea>
- I get[object Object]
, BUT when I inspect the element, I see the JSON printed like a string - which is what I want!
How do I get v-model to print JSON as a string in an input?
json vuejs2
add a comment |
up vote
0
down vote
favorite
I have a JSON object that I want users to edit.
When I print it plainly, like json
I get the string, "car":"color":"blue"
. But when I print it in any sort of editable field, like
<input v-model="json">
I get this:
Things I've tried:
html:v-model
/html:value
- Empty input<textarea v-model="json">json</textarea>
- I get[object Object]
, BUT when I inspect the element, I see the JSON printed like a string - which is what I want!
How do I get v-model to print JSON as a string in an input?
json vuejs2
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
I have a JSON object that I want users to edit.
When I print it plainly, like json
I get the string, "car":"color":"blue"
. But when I print it in any sort of editable field, like
<input v-model="json">
I get this:
Things I've tried:
html:v-model
/html:value
- Empty input<textarea v-model="json">json</textarea>
- I get[object Object]
, BUT when I inspect the element, I see the JSON printed like a string - which is what I want!
How do I get v-model to print JSON as a string in an input?
json vuejs2
I have a JSON object that I want users to edit.
When I print it plainly, like json
I get the string, "car":"color":"blue"
. But when I print it in any sort of editable field, like
<input v-model="json">
I get this:
Things I've tried:
html:v-model
/html:value
- Empty input<textarea v-model="json">json</textarea>
- I get[object Object]
, BUT when I inspect the element, I see the JSON printed like a string - which is what I want!
How do I get v-model to print JSON as a string in an input?
json vuejs2
json vuejs2
asked Nov 9 at 16:16
Travis Heeter
4,41524070
4,41524070
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
up vote
1
down vote
accepted
You can always use JSON.stringify(someObject)
to get the stringified version of an object, however you cannot bind this via v-model
.
If I understand you correctly, you do actually want the user to edit the stringified json and not provide input fields for the object properties? (The latter would be a much cleaner solution and could easily be achieved with a v-for="(value, key) in object"
though)
But if that's the case, you also have to consider what to do when the user enters invalid json.
My approach to this would be to use a stringified version of the object to bind to the textarea v-model
and watch
it to determine on any change if it is a valid and parsable json format.
Working example here: https://codesandbox.io/s/ol9nn9j566
It'd probably need some debouncing, and better error handling but it should get you started.
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53229458%2fv-model-prints-object-object-instead-of-the-json-string%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
1
down vote
accepted
You can always use JSON.stringify(someObject)
to get the stringified version of an object, however you cannot bind this via v-model
.
If I understand you correctly, you do actually want the user to edit the stringified json and not provide input fields for the object properties? (The latter would be a much cleaner solution and could easily be achieved with a v-for="(value, key) in object"
though)
But if that's the case, you also have to consider what to do when the user enters invalid json.
My approach to this would be to use a stringified version of the object to bind to the textarea v-model
and watch
it to determine on any change if it is a valid and parsable json format.
Working example here: https://codesandbox.io/s/ol9nn9j566
It'd probably need some debouncing, and better error handling but it should get you started.
add a comment |
up vote
1
down vote
accepted
You can always use JSON.stringify(someObject)
to get the stringified version of an object, however you cannot bind this via v-model
.
If I understand you correctly, you do actually want the user to edit the stringified json and not provide input fields for the object properties? (The latter would be a much cleaner solution and could easily be achieved with a v-for="(value, key) in object"
though)
But if that's the case, you also have to consider what to do when the user enters invalid json.
My approach to this would be to use a stringified version of the object to bind to the textarea v-model
and watch
it to determine on any change if it is a valid and parsable json format.
Working example here: https://codesandbox.io/s/ol9nn9j566
It'd probably need some debouncing, and better error handling but it should get you started.
add a comment |
up vote
1
down vote
accepted
up vote
1
down vote
accepted
You can always use JSON.stringify(someObject)
to get the stringified version of an object, however you cannot bind this via v-model
.
If I understand you correctly, you do actually want the user to edit the stringified json and not provide input fields for the object properties? (The latter would be a much cleaner solution and could easily be achieved with a v-for="(value, key) in object"
though)
But if that's the case, you also have to consider what to do when the user enters invalid json.
My approach to this would be to use a stringified version of the object to bind to the textarea v-model
and watch
it to determine on any change if it is a valid and parsable json format.
Working example here: https://codesandbox.io/s/ol9nn9j566
It'd probably need some debouncing, and better error handling but it should get you started.
You can always use JSON.stringify(someObject)
to get the stringified version of an object, however you cannot bind this via v-model
.
If I understand you correctly, you do actually want the user to edit the stringified json and not provide input fields for the object properties? (The latter would be a much cleaner solution and could easily be achieved with a v-for="(value, key) in object"
though)
But if that's the case, you also have to consider what to do when the user enters invalid json.
My approach to this would be to use a stringified version of the object to bind to the textarea v-model
and watch
it to determine on any change if it is a valid and parsable json format.
Working example here: https://codesandbox.io/s/ol9nn9j566
It'd probably need some debouncing, and better error handling but it should get you started.
answered Nov 10 at 16:01
TommyF
1,1271826
1,1271826
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53229458%2fv-model-prints-object-object-instead-of-the-json-string%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown