因此,我在这里陷入了困境,我通过API收到了JSON,需要将其从主要值到次要值组织起来。那是我的问题...看,我所有的键:值每次都会更改,它们不是静态的。
请在下面输入我的代码:
roles:[
{
type:mongoose.Schema.Types.ObjectId,
ref:"Roles",
validate: {
validator: async function(v) {
return await Roles.findById(v, (err, rec) => rec !== null)
},
message: 'Invalid Object ID'
},
required:true
}
],
我的输出是
<div class="col-md-12">
<div class="box box-primary">
<div class="box-header">
<h3 class="box-title">Serial Number</h3>
</div>
<div class="form-row">
<div class="form-group col-md-3">
<label></label>
<form method="post" action="#">
<div class="input-group input-group-sm">
<input type="text" class="form-control" id="uwipkey">
<span class="input-group-btn">
<button type="button" id="sendPredictRequest"class="btn btn-info btn-flat" >Executar</button>
</span>
</div>
</div>
</div>
<div class="box-footer">
<div >
</div>
<!-- Fim do Formulario com upload Files -->
</div>
<!-- /.box -->
</div>
<!--/.col (right) -->
</div>
<!-- /.row -->
</div>
<div class="row">
<div class="col-md-12">
<div class="box box-primary">
<div class="box-header">
<h2 class="box-title">Result</h2>
</div>
<div class="box-body">
<div id="charts"></div>
<div id="charts2">
</div>
</div>
</div>
</div>
</div>
</section>
<!--_*_*_*_*_*_*_*_*_*_*_*_*_*_ FUNCAO SUBMIT FORM _*_*_*_*_*_*_*_*_*_*_*_*_*_-->
<script>
$('#sendPredictRequest').click(function(){
uwip=$('#uwipkey').val()
$.getJSON('http://xx.xx.xx.xxx:8080/predict/' + uwip, function(data){
console.log('success');
var mappedHash = Object.keys( data ).sort(function( a, b ) {
return data[ a ].rank - data[ b ].rank;
}).map(function( sortedKey ) {
return data[ sortedKey ];
});
/*
Tried this as well, but I got the same output
var arrData = [data];
arrData.sort();
*/
$('#charts').html(JSON.stringify(data));
}).fail(function(jqxhr, textStatus, error) {
console.log( "error" );
$('#result').html("error" + error);
})
$.ajax({
method: "POST",
url: "webservices/ws_ai/repair_recomendation.php",
data:{
uwip: uwip
},
beforeSend: function () {
// Para o usuário esperar o final do carregamento da página
$("#charts2").html("<center><img src='pages/qualityMetrics/img/gears.gif' style='width: 100px; height: 100px;'/> Enviando...</center>");
},
success: function (result) {
//console.log(result);
$("#charts2").html(result);
}
})
});
</script>
基本上,我从AI收到结果,建议我需要采取什么措施修理PC,但是我需要进行组织,使我首先获得主要价值,然后获得主要价值,然后再获得次要结果(别忘了键和值可以随时更改)。你知道如何进行吗?
已经尝试将其转换为数组并使用sort()方法,但是没有用,因为我在这里的代码map()也没有用。请帮帮我!
答案 0 :(得分:1)
在成功功能上,您可以操纵结果。喜欢:
success: function (result) {
$("#charts2").html('');
$.each(sortReponse(result), function (key, value) {
$("#charts2").append('<p><span>' + value.key + '</span><span>' + value.value + '</span></p>');
});
}
您可能需要添加排序功能
function sortReponse(data)
{
var sorted = [];
$(data).each(function(k, v) {
for(var key in v) {
sorted.push({key: key, value: v[key]})
}
});
return sorted.sort(function(a, b){
if (a.value < b.value) return -1;
if (a.value > b.value) return 1;
return 0;
});
}
更新:在您的情况下(如果您的意思是此api.jquery.com/jQuery.getJSON),请尝试在.done函数内部。
答案 1 :(得分:0)
您可以使用Array#sort()
var data = [ // YOUR DATA ];
data.sort(function (a, b) {
return a.name.localeCompare(b.name);
});
`document.write('<tag>' + JSON.stringify(data, 0, 3) + '</tag>')`;