如何使用php将json数组转换为Java脚本?

时间:2018-10-08 19:46:01

标签: javascript php json

我有此数据...

    {"quiz":
      [{"question":"What is your favorite color?",
        "choices":[{"prefix":"A","content":"Red"},{"prefix":"B","content":"Blue"},{"prefix":"C","content":"Yellow"},{"prefix":"D","content":"Pink"}]},
       {"question":"What is the equivalent measurement of 1 feet?",
        "choices":[{"prefix":"A","content":"12cm"},{"prefix":"B","content":"12px"},{"prefix":"C","content":"12mm"},{"prefix":"D","content":"12inch"}]},
        {"question":"What is the combination of Green?",
        "choices":[{"prefix":"A","content":"Yellow and Red"},{"prefix":"B","content":"Blue and Orange"},{"prefix":"C","content":"Yellow and Blue"},{"prefix":"D","content":"Black and Skyblue"}]}],"success":1}

我想用这样的Java脚本来转换它...

       const myQuestions = [
  {
  question: "Who is the strongest?",
  answers: {
    a: "Superman",
    b: "The Terminator",
    c: "Waluigi, obviously"
  },
  correctAnswer: "c"
},
{
  question: "What is the best site ever created?",
  answers: {
    a: "SitePoint",
    b: "Simple Steps Code",
    c: "Trick question; they're both the best"
  },
  correctAnswer: "c"
},
{
  question: "Where is Waldo really?",
  answers: {
    a: "Antarctica",
    b: "Exploring the Pacific Ocean",
    c: "Sitting in a tree",
    d: "Minding his own business, so stop asking"
  },
  correctAnswer: "d"
}
   ];

我如何实现这一目标,因为我正在制作一个测验应用程序,该应用程序将通过使用webviewer在移动设备中查看。任何帮助都非常感激..

1 个答案:

答案 0 :(得分:0)

这是您可能如何转换阵列的开始。请注意,您的输入中没有正确的答案列,因此无法转换:

var input = {"quiz":
      [{"question":"What is your favorite color?",
        "choices":[{"prefix":"A","content":"Red"},{"prefix":"B","content":"Blue"},{"prefix":"C","content":"Yellow"},{"prefix":"D","content":"Pink"}]},
       {"question":"What is the equivalent measurement of 1 feet?",
        "choices":[{"prefix":"A","content":"12cm"},{"prefix":"B","content":"12px"},{"prefix":"C","content":"12mm"},{"prefix":"D","content":"12inch"}]},
        {"question":"What is the combination of Green?",
        "choices":[{"prefix":"A","content":"Yellow and Red"},{"prefix":"B","content":"Blue and Orange"},{"prefix":"C","content":"Yellow and Blue"},{"prefix":"D","content":"Black and Skyblue"}]}],"success":1}
        
console.log(input.quiz.map(({question, choices}) => ({
  question,
  answers: choices.reduce((obj, v) => Object.assign(obj, {[v.prefix]: v.content}), {}),
  correctAnswer: "?",
})));