
下記のようなjsonのテキストデータがあった場合、それを貼り付けたらキーの昇順でソートしてくれるサービスがあれば教えてください。
サービスがなくても簡単に実現できる方法でもかまいません。
どうぞ宜しくお願いいたします!m(_ _)m
------------------jsonデータ----------------------
{
"bbb": {
"c": "c",
"b": "b",
"a": "a"
},
"aaa":{
"b": "b",
"c": "c",
"a": "a"
}
}
}
-------------------------------------------------
↓のように並び変わってほしい
-------------------------------------------------
{
"aaa": {
"a": "a",
"b": "b",
"c": "c"
},
"bbb":{
"a": "a",
"b": "b",
"c": "c"
}
}
}
-------------------------------------------------
No.2ベストアンサー
- 回答日時:
下記のような HTML ファイルをブラウザで表示すれば実現できます
<!DOCTYPE html>
<form name=sortjson><p><textarea name=s></textarea><button type=submit>change</button></p><pre><output name=d></output></pre></form>
<script>
document.forms.sortjson.onsubmit = (event) => {
event.preventDefault();
function F(o) {
if (o == null || typeof o != 'object') return o;
if (o instanceof Array) return o.map(F);
return Object.keys(o).sort().reduce((p,v) => { p[v]=F(o[v]); return p}, new Object());
}
var el = event.target.elements;
try { el.d.value = JSON.stringify(F(JSON.parse(el.s.value)),null,2) }
catch (ex) { el.d.value = ex.toString() }
};
</script>
ありがとうございます。
サービスではありませんでしたが簡単に作成できる形に記載していただけたのでベストアンサーとさせていただきました。
ありがとうございます!
No.1
- 回答日時:
こんばんは
オブジェクトの場合、keyの順序が問題になることはあまりないように思いますけれど・・・
(探してはいませんが、そのようなサービスがあるのかどうか・・)
ご質問がjavascriptのカテなので、javascriptで良いのでしょうか?
(他言語でも、同様と思いますが)
扱いやすいように、一旦オブジェクト化して並べ替え、テキスト化するのが簡単だと思います。
以下では、keyでソートする関数を作成しておいて、必要な回数だけ呼び出す方法です。
ご参考にでもなれば・・
(確認出力は、とりあえずconsoleにしてあります)
const sourceText = `{
"bbb": { "c": "c", "b": "b", "a": "a" },
"aaa": { "b": "b", "c": "c", "a": "a" }
}`;
const keySort = o =>{
const op = Object.entries(o);
op.sort( (a, b) => a[0]==b[0]?0:a[0]>b[0]?1:-1);
return Object.fromEntries(op);
};
const obj = keySort(JSON.parse(sourceText));
for (const k in obj) obj[k] = keySort(obj[k]);
console.log(sourceText); // 元テキストデータ
console.log(JSON.stringify(obj)); // ソート後テキスト
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
<tr>指定した表の行要素をボ...
-
jsonテキストデータの並び替え...
-
ラジオボタンを複数選択したと...
-
Outlookのアカウントがあるとメ...
-
ボタンを押したあとに画像を表...
-
【GAS】WEBアプリでハイパーリ...
-
React と Electron でデスクト...
-
スマホ上で、左右スワイプで次...
-
以前の質問だと、どの条件でも...
-
セレクトボックスで配列を呼び...
-
タグを教えてください。
-
jsで質問です。 formをsubmitし...
-
2025年相性がいい人のサイトの...
-
CookieをWebStoeageに変える
-
Adobe acrobat proでフォームを...
-
jqueryのselect2で検索欄の文字...
-
食材の期限を管理するためにGAS...
-
ビデオのJSについて
-
鍵盤アプリで、スマホの画面に...
-
<div>のタッチ状態を維持したま...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
jsonテキストデータの並び替え...
-
テキストファイルの内容を変数...
-
マピオン・ラボの地図はドラッ...
-
JSONのコメント行の書き方...
-
jQuery.getでレスポンスデータ...
-
jQueryでGETだと送信できるデー...
-
jQueryでAJAXを利用しJSONデー...
-
csvを使用したデータバインド(...
-
Ajaxでデータベース更新
-
json形式データのデータ連携に...
-
jQueryクックブック レシピ5.11...
-
教えてください!html5.jpを使...
-
VSCodeにて「終了タグ」の背景...
-
queryselctorのセレクタの後ろ...
-
ジャンクの箇所を一切書かずに...
-
【JavaScript】confirmのボタン...
-
HTMLでDBからデータを表形式で...
-
sleepの負荷
-
呼び出し元のURLを知りたいのです
-
ローカル用HTMLファイルの安全...
おすすめ情報
すみません閉じカッコが一つ多いのはミスなので無視してくださいm(_ _)m